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

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

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析学习提纲,第十四章下界

第十四章 下界 14.1 平凡下界 平凡下界:用直观的方法就可以推导出来。 例14.1 检查个元素的整数数组中,其值为偶数的元素个数。 需要对数组中的每一个元素进行判断和累计。 对每一个元素进行判断需要时间, 对个元素进行判断,就需要时间。 因此,是求解这个问题的所有算法的下界。 例14.2 检查具有个顶点的有向图的可达性矩阵问题。 个顶点的有向图的可达性矩阵是一个的矩阵, 需要检查个元素,每检查一个元素至少需要时间, 则检查个元素,至少需要时间。 因此,是求解这个问题的所有算法的下界。 1.4.2 判定树模型 一、判定树模型 判定树是一棵二叉树: 内部结点,相应于形式为的比较。 如果关系成立,则控制转移到左儿子结点; 否则,控制转移到右儿子结点。 叶子结点,表示问题的一个结果。 二、用判定树模型建立问题的下界 从根结点开始执行,根据比较操作的结果,将控制转移到它的儿子结点。 上述过程一直进行,直到叶子结点为止 判定树的高度与问题的时间复杂性有关 忽略解题时的所有算术运算,只集中考虑分支执行时的转移次数。 14.2.1 检索问题 一、检索问题: 数组是一个具有个元素的有序数组,给定元素,确定是否在数组中。 二、用判定树模型来确定基于比较的检索问题的下界 用二叉树表示数组的检索过程, 树中的每个结点表示元素和数组中某个元素的一次比较。 每次比较有三种可能的结果:、、及。 假定,如果,则算法检索成功而终止; 如果,则算法的执行转移到二叉树的左分支; 如果,则算法的执行转移到二叉树的右分支。 算法的执行沿左右分支推进,直到叶子结点, 若都找不到使的,,则算法检索失败而终止。 因为检索过程是从根结点开始,直到叶结点为止的。 因此,比较与判定的次数是树的高度加1。 当被检索元素的个数为时, 因为元素是有序的,判定树的内部结点至多为个,其中。 如果所有结点都集中在树的第层及其较低的层上, 那么,树的高度至少为, 由此得到,检索个元素,在最坏情况下,至少需要进行次比较。 显然,这也是检索问题的下界。由此可以得到下面的定理: 定理14.1 检索具有个元素的有序数组,在最坏情况下的比较次数是。 因此,检索问题的下界是,而二叉检索算法是检索问题中的最优算法。 例如,,则二叉检索问题的判定树如图14.1所示: 图14.1 检索有序数组的判定树 14.2.2 排序问题 一、基于比较的排序问题 数组是一个具有个元素的无序数组,把数组按非增或非降顺序排序。 二、用判定树模型来确定基于比较的排序问题的下界 1、工作过程 判定树的每一个内部结点表示一个判定,每一个叶子结点,表示一个输出。 在每一个判定中,比较数组中的两个元素和, 如果,则控制转移到左分支结点;否则,控制转移到右分支结点。 从根结点开始,判定数组中某两个元素进行, 根据判定的结果,转移到某个分支结点,又对数组中的某两个元素进行判定, 如此进行,直到叶子结点为止,就得到一个有序的数组。 图14.2表示对一个具有3个元素的数组进行排序的一种判定树。 图14.2 排序三个元素的一种判定树 如果被排序的元素个数为, 个元素有种排列, 判定树中的叶子结点个数为个。 2、判定树的高度 引理14.1 若是至少具有个叶子结点的二叉树,则的高度至少为: 证明:令为二叉树的高度,第层的叶子结点数目至多为。 是至少具有个叶子结点,所以,有,即。因为 由图14.3,有: 图14.3 计算的近似值 定理14.2 任何基于比较的排序算法,对个元素进行排序时,在最坏情况下的时间下界为。 14.3 代数判定树模型 代数判定树: 使判定树内部结点能对个输入变量的多项式进行计算和比较判定,再根据判定的结果进行分支,用这种方式进行计算和判断所产生的判定树,称为代数判定树。 14.3.1 代数判定树模型及下界定理 一、代数判定树模型 1、代数判定树模型 个输入变量的代数判定树是一棵二叉树: 用如下形式的测试语句标记内部结点的语句: 如果成立,则转移到左儿子结点;否则,转移到右儿子结点。 其中,是三个关系运算符中的任何一个。 用答案或标记叶子结点的语句。 2、阶代数判定树 对某个,标记内部结点的语句, 与其相关的多项式至多是阶多项式, 3、线性代数判定树,或线性判定树。 标记内部结点的所有语句, 与其相关的所有多项式都是线性的, 二、下界定理 1、判定问题的成员点集 是判定问题,是该判定问题的输入实例。 的每一个输入实例,看成是维空间中的一点, 则对维空间中的子集, 如果,当且仅当问题对输入实例的答案为, 则称为判定问题的成员点集。 2、代数判定树判定中的成员 把点作为输入参数, 在代数判定树的根结点上开始计算, 最终到达代数判定树的叶子结点为,当且仅当, 称代数判定树判定中的成员。 3、下界定理的引理。

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档