算法导论 6.3-3解答

原创 2012年03月22日 10:21:06
证明:在任一含n个元素的堆中,至多有ceiling(n/(2^(h+1)))个高度为h的节点。
分析:刚开始分析这道题,犯了结点高度h的错误。
	具体问题如下:
	对于满二叉树,上述命题成立如果是非完全二叉树,命题不成立。举例说明:假设有10个元素,那么高度为1的节点也就是第3层的节点,一共有4个,而不是ceiling(10/2^2))=3个,为什么呢?

经过思考以后,对于结点高度的定义,是按照当前所在结点为根结点的子树决定的,而不是由整棵树决定,也就是所有的叶子结点,它的高度全部为0。还是假设有10个元素,它的高度如下图所示:

命题理解正确了,开始用数学归纳法证明吧!

证明:
	(1)对于h=0, 即叶子结点的个数,由6.1-7习题可知,叶子结点的个数最多为ceiling(n/2)=ceiling(n/2^(h+1)),即初始化成立。
	(2)假设h=x成立,即高度为x的结点最多有ceiling(n/2^(x+1)),
	那么对于高度为h=x+1的结点应该为高度为x的父结点,所以高度为x+1的结点个数最多为ceiling(n/2^(x+1))/2=ceiling(n/2^(x+2))=ceiling(n/2^(h+1)).
命题得证。


                    

相关文章推荐

算法导论 练习题 6.3-3

按高度来说明吧。。 先假设n是偶数,高度为0的叶子节点数量为n/2 想象一下把叶子节点去掉,剩下的节点数量为n-n/2=n/2,现在这棵新的树叶子节点为n/4,这些节点也就是原来树高度为1的节点 ...

算法导论 6.3-3解答

证明:在任一含n个元素的堆中,至多有ceiling(n/(2^(h+1)))个高度为h的节点。 分析:刚开始分析这道题,犯了结点高度h的错误。 具体问题如下: 对于满二叉树,上述命题成立。但...
  • seu2hit
  • seu2hit
  • 2013年03月11日 21:53
  • 566

《算法导论(第2版)》习题6.3-3题解

Solution to CLRS 2e Exercise 6.3-3Show that there are at most  nodes of height h in any n-element he...

算法导论(3版)第4章习题的部分解答

Introduction to algorithms (3rd editon) 第四章部分解答        by zevolo 4.3-1 Show that the solution of T(...
  • zevolo
  • zevolo
  • 2012年05月31日 17:17
  • 8132

《算法导论》习题解答 Chapter 22.1-3(转置图)

一、邻接表实现 思路:一边遍历,一边倒置边,并添加到新的图中 邻接表实现伪代码: for each u 属于 Vertex for v 属于 Adj[u] Adj1[v].in...
  • hcbbt
  • hcbbt
  • 2013年07月16日 01:03
  • 2560

算法导论第15章习题15.3-3最大矩阵链乘法

15.3-3思路供参考:确定一个问题是否具有最优子结构要考虑两个方面的问题:1、子问题是否是独立。2、子问题是否是重叠 先分析第一个问题:最大矩阵链乘法子问题是将矩阵链分为两部分,求前一部和后一部分...

算法导论第2章(3) 二分查找 binary search

二分查找(分治法)。 二分查找也是一种分治法的实现,每一次查找将数据分为两个部分,问题规模都减小一半。这样查找的时间复杂度为logN。因为其实查找过程建立了一棵有N个节点的二叉树,查找次数是这棵树的...

算法导论习题6—3 Young氏矩阵

Young氏矩阵具有从左到右元素顺次排列,从上到下元素顺次排列。该代码实现了从矩阵中抽取最小元素,并重新调整young氏矩阵,插入元素并重新调整矩阵,查找元素。这三个函数的时间复杂度都是lg(m+n)...

算法导论笔记 红黑树(3)

//---------------------------15/03/20----------------------------          //删除          ...
  • boydfd
  • boydfd
  • 2015年03月21日 15:57
  • 464

算法导论 3-2

问题 在下表中,对每一对表达式(A,B),指出A和B渐近关系。 分析 A B O o a) Y b) Y c) d) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法导论 6.3-3解答
举报原因:
原因补充:

(最多只允许输入30个字)