计算机算法设计与分析复习资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 最坏情况下的时间复杂性 Tmax (n)二 max { T (I) | size (I)=n } 最好情况下的吋间复杂性 Tmin(n) = min{ T(I) | sizc(I)=n } 平均情况下的时间复杂性 Tavg(n)=为 p(r)T⑴ size(l)=n 其中I是问题的规模为刀的实例,刀仃)是实 例I岀现的概率。 规则 0(f (n)) +0(g(n)) = 0(max{f (n), g(n)})的证明: 对于任意fl (n) € 0(f (n)),存在正常数cl和自然数nl,使得对所有n nl, 有 fl (n) elf (n) o 类似地,对于任意gl(n) e 0(g(n)),存在正常数c2和自然数门2,使得对所 有 n r)2,有 gl (n) c2g(n)。 n2}, h(n)= max{f (n), g(n)}+ g(n))令 c3二max {cl, c2}, n3 =max{nl, 则对所有的n ? n3,有 n2}, h(n)= max{f (n), g(n)} + g(n)) fl(n) +gl(n) c3f (n) fl(n) +gl(n) c3f (n) c32 max {f (n), g(n)} =2c3h(n) = 0(max{f (n), g(n)}) 算法分析的基本法则 非递归算法: for / while 循环 循环体内计算时间*循环次数; 嵌套循环 循环体内计算时间*所有循环次数; 顺序语句 各语句计算时间相加; if-else 语句 if语句计算时间和else语句计算时间的较大者。 第二章递归与分治策略 递归算法总体思想:将求出的小规模的问题的解合并为一个更大规模的问题的 解,自底向上逐步求岀原来问题的解。 分治法的设计思想是,将一个难以肓接解决的大问题, 分割成一些规模较小的相同问题,以便各个击破, 分而治Z。 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递 归函数。 边界条件与递归方程是递归函数的二个要素 优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此 它为设计算法、调试程序带来很大方便。 缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都 比非递归算法要多。 解决方法:在递归算法中消除递归调用,使其转化为非递归算法。 1、 采用一个用户定义的栈来模拟系统的递归调用工作栈。该方法通用性强,但 本质上还是递归,只不过人工做了本來由编译器做的事情,优化效果不明显。 2、 用递推来实现递归函数。 3、 通过变换能将一些递归转化为尾递归,从而迭代求岀结果。 第三章动态规划 基本思想是将待求解问题分解成若干个子问题,但是经分解得到的子问题往往不 是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有 些子问题被重复计算了许多次。 基本步骤 找出最优解的性质,并刻划其结构特征。 递归地定义最优值。 以白底向上的方式计算出最优值。 根据计算最优值吋得到的信息,构造最优解。 基本要素 一、 最优子结构 矩阵连乘计算次序问题的最优解包含着其子问题的最优解。这种性质称为最优子 结构性质。 在分析问题的最优子结构性质吋,所用的方法具有普遍性:首先假设由问题的最 优解导出的子问题的解不是最优的,然后再设法说明在这个假设下可构造出比原 问题最优解更好的解,从而导致矛盾。 利用问题的最优子结构性质,以自底向上的方式递归地从子问题的最优解逐步构 造出整个问题的最优解。最优子结构是问题能用动态规划算法求解的前提。 二、 重叠子问题 递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。这 种性质称为子问题的重叠性质。 动态规划算法,对每一个子问题只解一次,而后将其解保存在一个表格屮,当再次需要解此 子问题吋,只是简单地用常数吋I可查看一下结果。 通常不同的子问题个数随问题的大小呈多项式增长。因此用动态规划算法只需要多项式时 间,从而获得较高的解题效率。 三、 备忘录方法 备忘录方法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方法为 每个解过的子问题建立了备忘录以备需要时查看,避免了相同子问题的重复求 解。 第四章贪心算法 基木要素 1、贪心选择性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择, 即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态 规划算法的主要区别。 2、最优子结构性质 问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。 当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。 当一个问题的最优解包含其子问题的最优解时, 称此问题具有最 优子结构性质。 第五章回溯法 有许多问题

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档