算法设计总思想.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文档。上传文档
查看更多
算法设计总思想

第一章复习要点 算法的定义及特点。 答:算法是指解决问题的一种方法或一个过程。 算法是若干指令的有穷序列,满足性质: (1)输入:有外部提供的量作为算法的输入。 (2)输出:算法产生至少一个量作为输出。 (3)确定性:组成算法的每条指令是清晰,无歧义的。 (4)有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。 第二章复习要点 分治策略的基本思想。 答: (1)将原问题划分为k个子问题。 (2)对这k个子问题分别求解。如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。 (3) 将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。 阶乘函数的递归定义和实现。(p20) Fibonacci数列的递归定义和实现。(p20) 排列问题的实现。(p21-22) 整数划分问题的递归式定义以和实现。(p22-23) Hanoi问题的实现。(p24) 二分搜索算法的实现。(p28) 棋盘覆盖问题的实现。(p32-34) 合并排序的递归实现、速排序的递归实现。(p34-39) 第三章复习要点 1、动态规划基本思想。 答: (1)动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题 (2)但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。 (3)如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。 2、完全加括号的矩阵连乘积问题动态规划求解。(递推式p64及算法实现p65) 3、备忘录方法。 答:备忘录方法是动态规划算法的变形。与动态规划算法一样,备忘录方法用表格保存已解决的子问题的答案,在下次需要解此问题时,只要简单地查看该子问题的解答,而不必重新计算。与动态规划算法不同的是,备忘录方法的递归方式是自顶向下的,而动态规划算法则是自底向上递推的。因此备忘录方法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方法为每个解过的子问题建立了备忘录以备需要时查看,避免了相同子问题的重复求解。 完全加括号的矩阵连乘积问题备忘录方法求解。(p70) 最长公共子序列动态规划求解。(递推式p73及算法实现lcslength方法p73-74,lcs方法p74) 0-1背包问题动态规划求解。(递推式p93及算法实现p93-94) 动态规划总的思想: 动态规划的关键是:在求解最优解的情况下,得到递推式,及在一序列子问题中,从后往前,或者从前往后添加子问题,在子问题中比较得到最优的解: 0, 条件不符合 F(i, x) = f(i-1, x) 条件不符合 Max( f(i-1,x), f(i-1, x+vi) ); 条件符合,看在当前情况下选择与不选择之间哪个后面的结果会比较好 思想实现:(1)递归求解(备忘录方法),在递归过程中,添加两个表,分别记录最优的情况解和最优解从哪个上一步中得到的; (2)迭代求解:用迭代的方法,从下往上求解最优解,在记录下当前最优解是从哪一步求解答到了 第四章复习要点 1、贪心算法基本思想。 答:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。 活动安排问题的贪心实现。(采用的贪心原则p109第一段和代码实现p108) 哈弗曼编码问题。 要求:掌握哈弗曼编码问题的解题思路p117最后一段,哈弗曼树的构建,根据哈弗曼树求出哈弗曼编码。具体的实现代码不考。 单源最短路径问题 要求: (1)掌握问题求解的基本思想,参见教材p121 (2)给定一个带权有向图,能够用表的方式,写出算法的迭代过程。P123表4-2 (3)具体的代码实现不要求掌握。 5、最小生成树问题prim算法 要求: 掌握prim算法的基本思想。P126 给定一个连通带权图,能够用图的方式,表述该算法的处理过程。P127图4-9 具体实现代码不考 6、最小生成树问题kruskal算法 要求: (1)掌握kruskal算法的基本思想。P128 (2)给定一个连通带权图,能够用图的方式,表述该算法的处理过程。P129图4-10 贪心算法总的思想:只考虑当前情况下最好的情形,最后得到最优的解 第五章复习要点 1、回溯法的基

文档评论(0)

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

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

1亿VIP精品文档

相关文档