- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE10
第4章 不基于比较的排序
不用Sterling公式,而用第2章中对(2.6)式证明的方法证明lgn!=?(nlgn)。
证明:首先,我们有lgn!=lg1+lg2+…+lgn=k=1nlgk?k=1nlgn=nlgn=O(n
再有lgn!=k=1nlgk?k=n/2nlgk?k=n/2nlgn2?n2lgn2
所以有lgn!=?(nlgn)。
假设序列A[1..n]含有n个不同的数并已从小到大排好,即A[1]A[2]…A[n]。为方便起见,还假定A[0]=-¥和A[n+1]=¥。考虑在这个序列中搜索一个给定数字x。如果有某个序号i存在使得x=A[i](1?i?n),则报告成功并输出序号i。否则,找出两个相邻序号,i和i+1,满足A[i]xA[i+1]。证明,如果用比较的方法搜索的话,任何算法在最坏情况下需要至少élg(n+1)ù次比较。这题的结果和第2章习题5的结果证明二元搜索算法(例2.1)是最优的。
证明: 显然,x和序列A中任何一个数最多只须比较一次。所以,这样的搜索算法可以用一个决策树来描述。这是一个完全二叉树,其中每个内结点对应一个序列中数。假定第一次比较是在x和序列中某个数A[i]进行,那么树的根结点对应A[i]。我们有三种比较结果:
x=A[i]。这时搜索停止在这个结点并报告成功。
xA[i]。这种情形发生时,这以后算法进行的所有的比较用一个左子树描述。这时,如果这以后算法不再比较,则算法中止,左子树为一叶结点。
xA[i]。这种情况发生时,这以后算法进行的所有的比较用一个右子树描述。这时,如果这以后算法不再比较,则算法中止,右子树为一叶结点。
显然,一个算法必须正确地报告各种情况。对一个有n个数的序列,一共有2n+1种可能的情况,它们是x=A[i](1?i?n),和A[i]xA[i+1],0?i?n。因此,这个二叉树必须有至少2n+1个结点,包括内结点和外结点。假设这个树的高为h,那么它含有的结点数最多为:
1+2+4+…+2h=2h+1-1。
因此我们有2h+1-132n+1,即2h3n+1。由此得h3élg(n+1)ù。
因为深度为h的结点必定是个叶结奌并代表算法要进行h次比较的情况。因此在最坏情况下,任何算法需要至少élg(n+1)ù次比较。
假设在需要排序的6个数a1,a2,a3,a4,a5,a6中,已知a1a3a5,但此外不知道其他数字之间的任何关系。证明任何基於比较的排序算法在最坏情况下需要至少7次比较才能把这6个数排好序。
证明:在已知a1a3a5的情况下,这6个数可能有的不同的排列数是4′5′6=120。所以任一个基於比较的排序算法对应的决策树必须有至少120个叶子。设该树的高度为h,那么,下面关系必须满足:2h3120。因此有h37。这也就是说,某个叶子的深度至少为7。那么,当算法在这个叶子结束时必定经过了至少7次比较。所以任何基於比较的排序算法在最坏情况下需要至少7次比较。
对任意一个有n个内结点的完全二叉树T,其外路径总长EPL(T)和内路经总长IPL(T)满足以下关系:EPL(T)=IPL(T)+2n。
证明:我们对n进行归纳证明。
归纳基础:
当n=1时,显然有EPL(T)=2和IPL(T)=0。所以等式EPL(T)=IPL(T)+2n成立。
归纳步骤:
假设当内结点数为n=1,2,…,k-1(k?2)时,均有EPL(T)=IPL(T)+2n。我们证明在n=k时,该等式仍成立。假设完全二叉树T有k个内结点。如下图(a)所示,我们总可以找到一个内结点x,它的两个儿子都是叶子,标为a和b。如图(b)所示,如果我们把a和b从树中删去,我们可得到另一个完全二叉树T’。这个完全二叉树T’有k-1个内结点。
x
x
a
b
x
点x的两个儿子a和b都是叶子
把点x的两个儿子a和b都刪去后的二叉树T’
由归纳假设,我们有EPL(T’)=IPL(T’)+2(k-1)。
从树T和T’的关系,我们有以下关系:
EPL(T)=EPL(T’)–depth(x)+depth(a)+depth(b) (1)
IPL(T)=IPL(T’)+depth(x) (2)
由(1)–(2),以及depth(a)=depth(b),得到
EPL(T)-IPL(T)=EPL(T’)-IPL(T
您可能关注的文档
- 计算机算法基础 第2版 习题及答案 第1章 .docx
- 计算机算法基础 第2版 习题及答案 第2章 .docx
- 计算机算法基础 第2版 习题及答案 第3章 .docx
- 计算机算法基础 第2版 习题及答案 第5章 .docx
- 计算机算法基础 第2版 习题及答案 第6章 .docx
- 计算机算法基础 第2版 习题及答案 第7章 .docx
- 计算机算法基础 第2版 习题及答案 第8章 .docx
- 计算机算法基础 第2版 习题及答案 第9章 .docx
- 计算机算法基础 第2版 习题及答案 第10章 .docx
- 计算机算法基础 第2版 习题及答案 第11章 .docx
- 2025年贵州工业职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年西昌民族幼儿师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年西藏警官高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年贵州工商职业学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 2025年贵州工商职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年贵州农业职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年许昌职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年许昌职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
文档评论(0)