算法导论第六章6.1堆课后答案

6.1-1在高度为h的堆中,元素个数最多和最少分别是多少?


最少是最底层只有一个叶子结点:2^0+2^1+...+2^(h-1)+1=2^h
最多是这个堆(包括最底层)是一个完全二叉树:2^0+2^1+...+2^(h-1)+2^h=2^(h+1)-1


6.1-2证明:含n个元素的堆的高度为lgn.


设这个堆的高度为h
这个堆的总结点2^0+2^1+...+2^(h-1)+O(2^h)=n  其中1<=O(2^h)<=2^h
所以1+2^h-1<=2^h-1+O(2^h)<=2^h-1+2^h   
    2^h<=n<=2^(h+1)-1<2^(h+1) 
    lgn-1<h<lgn
h=向下取整lgn


6.1-3证明:在最大堆的任意子树中,该子树所包含的最大元素在该子树的根结点上。


最大堆的任意子结点作为父结点,都要符合最大堆的性质所以第i个结点

A[PARENT(i)]>=A[i]



6.1-4假设最大堆的所有元素都不相同,那么该堆的最小元素应该位于哪里?


最小元素必然是在最底层或者是没有子结点
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值