算法分析与设计期末考试复习指南.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文档。上传文档
查看更多
算法分析与设计期末考试复习指南.doc

算法分析与设计期末复习课内容(考试范围) 一、概念: 什么是算法?算法满足什么条件?提示:若干条指令组成的有序序列;每条指令执行的时间有限;每个算法必须在有限的时间内结束;每个算法有0个或多个输入;每个算法只有一个输出。 算法常用的设计技术回溯法与分支限界法的区别:在解空间树遍历时,回溯法用深度优先遍历,由栈来实现数据存取,而分支限界法用广度优先来遍历,由队列来对数据进行存取。 简单介绍、评价或比较若干算法(搜索算法的介绍、排序的思想等)。 相关资料: 什么是算法? 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则有穷性(Finiteness) 算法的有穷性是指算法必须能在执行有限个步骤之后终止 确切性(Definiteness) 算法的每一步骤必须有确切的定义; 输入项(Input) 一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 输出项(Output) 一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 可行性(Effectiveness) 算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成。(也称之为有效性)把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。一个最优化策略的子策略总是最优的。将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。对有约束条件的最优化问题的所有可行解(数目有限)空间进行搜索。该算法在具体执行时,把全部可行的解空间不断分割为越来越小的子集(称为分支),并为每个子集内的解的值计算一个下界或上界(称为定界)。在每次分支后,对凡是界限超出已知可行解值那些子集不再做进一步分支。这样,解的许多子集(即搜索树上的许多结点)就可以不予考虑了,从而缩小了搜索范围。这一过程一直进行到找出可行解为止,该可行解的值不大于任何子集的界限。因此这种算法一般可以求得最优解。在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 …,I2n+1等概率发生,则A在平均情况下,至少要做[logn](取下界)-1/2次比较,也即搜索有序表的下界是[logn](取下界)-1/2。而二分搜索可达此下界,由此平均情况下二分搜索也是最优算法。 二分查找: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。算法要求必须采用顺序存储结构 2.必须按关键字大小有序排列。 算法复杂度假设其数组长度为n,其算法复杂度为O(logn)二叉排序树(Binary Sort Tree)又称二叉查找树。 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;P(n)=O(logn) 二、分析:如何评价算法的优劣 正确性。 时间效果。基本操作(随问题规模增大而使运算量增大),即时间复杂度。 空间效果。理想状态是用一常数个空间完成问题的求解。 健壮效果。解决问题时或过程中不会轻易出错或停止。 可读性。能让人看懂,读懂。 其中经常考失控分析:如快速排序分析(不管分析结果怎么样,总需在答题时提到时间复杂度为nlog(n)),矩阵相乘,strassen,二分查找平均复杂度,堆排序评分分析等。 相关资料: 时间复杂度分析:

文档评论(0)

中华书局 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档