算法设计与分析学习提纲,第十四章下界.docVIP

算法设计与分析学习提纲,第十四章下界.doc

  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文档。上传文档
查看更多
第十四章下界 14.1平凡下界 平凡下界:用直观的方法就可以推导出来。 例14.1检查〃个元素的整数数组中,其值为偶数的元素个数。 需要对数组中的每一个元素进行判断和累计。 对每一个元素进行判断需要G( 1)吋间, 对n个元素进行判断,就需要G5)吋间。 因此,G5)是求解这个问题的所有算法的下界。 例14.2检查具有n个顶点的有向图的可达性矩阵问题。 n个顶点的有向图的可达性矩阵是一个nxn的矩阵, 需要检查/个元素,每检查一个元素至少需要G (1)时间, 则检查席个元素,至少需要时间。 因此,Q(h2)是求解这个问题的所有算法的下界。 1.4.2判定树模型 一、 判定树模型 判定树是一棵二叉树: 内部结点,相应于形式为虫y的比较。 如果关系成立,则控制转移到左儿子结点; 否则,控制转移到右儿子结点。 叶子结点,表示问题的一个结果。 二、 用判定树模型建立问题的下界 从根结点开始执行,根据比较操作的结果,将控制转移到它的儿子结点。 上述过程一直进行,直到叶子结点为止 判定树的高度与问题的时间复杂性有关 忽略解题时的所有算术运算,只集中考虑分支执行时的转移次数。 14.2.1检索问题 一、检索问题: 数组4是一个具有〃个元素的有序数组,给定元素兀,确定兀是否在数组A屮。 二、用判定树模型來确定基于比较的检索问题的下界 用二叉树表示数组的检索过程, 树中的每个结点表示元素兀和数组屮某个元素A]的一次比较。 每次比较有三种可能的结果:xA[i]. x = A[i],及xA[i]0 假定,如果x=A[i]f则算法检索成功而终止; 如果xA[/],则算法的执行转移到二叉树的左分支; 如果xA[i],则算法的执行转移到二叉树的右分支。 算法的执行沿左右分支推进,直到叶子结点, 若都找不到使x=A[i]的几,则算法检索失败而终止。 因为检索过程是从根结点开始,直到叶结点为止的。 因此,比较与判定的次数是树的高度加1。 当被检索元素的个数为〃时, 因为元素是有序的,判定树的内部结点至多为廿-1个,其中—「log川。 如果所有结点都集屮在树的第殳层及其较低的层上, 那么,树的高度至少为LlognJ, 由此得到,检索〃个元素,在最坏情况下,至少需要进行Llog/zJ + 1次比较。 显然,这也是检索问题的下界。由此可以得到下面的定理: 定理14?1检索具有〃个元素的有序数组,在最坏情况下的比较次数是LlognJ+lo 因此,检索问题的下界是G(log〃),而二叉检索算法是检索问题中的最优算法。 例如,心{3,4,7,10,15,18,26,30,31,38},则二叉检索问题的判定树如图14.1所示: 图14.1检索有序数组的判定树 14.2.2排序问题 一、 基于比较的排序问题 数组A是一个具有n个元素的无序数组,把数组A按非增或非降顺序排序。 二、 用判定树模型来确定基于比较的排序问题的下界 1、工作过程 判定树的每一个内部结点表示一个判定,每一个叶子结点,表示一个输出。 在每一个判定中,比较数组中的两个元素A[i]和A[j], 如果A[i]A[j]f则控制转移到左分支结点;否则,控制转移到右分支结点。 从根结点开始,判定数组中某两个元素进行, 根据判定的结果,转移到某个分支结点,又对数组屮的某两个元素进行判定, 如此进行,直到叶子结点为止,就得到一个有序的数组。 图14.2表示对一个具有3个元素的数组进行排序的一种判定树。 图14.2排序三个元素的一种判定树 如果被排序的元素个数为n, n个元素有” !种排列, 判定树中的叶子结点个数为!个。 2、判定树的高度 引理14.1若7是至少具有料!个叶子结点的二叉树,则7的高度至少为: nlogn-1.5 n = G( nlogz?) 证明:令为二叉树的高度,第层的叶子结点数目至多为 7是至少具有加个叶子结点,所以,有nl2hf即/?log?!o因为 八 n logn!= y^logz = y^logz Z=1 /=2 由图14.3,有: \ogxdx \ogxdx =nlog77-771oge?4- log€? n\ogn-\.5n = Q(/71og77) 定理14?2任何基于比较的排序算法,对n个元素进行排序时,在最坏情况下的时间下 界为G(niogn) o 14.3代数判定树模型 代数判定树: 使判定树内部结点能对〃个输入变量的多项式进行计算和比较判定,再根据判定的结果 进行分支,用这种方式进行计算和判断所产生的判定树,称为代数判定树。 14.3.1代数判定树模型及下界定理 一、 代数判定树模型 1、 代数判定树模型 川个输入变量门,兀2,…,X”的代数判定树是一棵二叉树: 用如下形式的测试语句标记内部结点的语句: 如果/3,七,…心)(7 0成立,则转移到左儿子结点;否则,转移到右儿子

文档评论(0)

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

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

1亿VIP精品文档

相关文档