《算法导论》笔记 第8章 8.1排序算法时间的下界

【笔记】


任意一个比较排序算法在最坏情况下,都需要做Ω(nlogn)次的比较。

堆排序和合并排序都是渐进最优的比较排序算法,运行上界O(nlogn)与最坏情况下界Ω(nlogn)是一致的。


【练习】


8.1-1 在于某种比较排序算法对应的决策树中,一个叶结点最小可能的深度是多少?



8.1-2 不用斯特林近似公式,给出log(n!)渐进紧缺界。



8.1-3 证明:对于长度为n的n!种输入中的至少一半而言,不存在具有线性运行时间的比较排序算法。对n!中的1/n部分而言又怎样呢?1/2^n部分呢?

假设有m个结点存在线性运行时间的比较排序算法,由高度为h的二叉树至多有2^h个子结点,则2^h>=m。

两边取对数则,h>=log(m),即树的高度至少大于等于log(m)。

由任何一个比较排序算法在最坏情况下,都需要做Ω(nlogn)次比较,则h>=O(nlogn)。

若logm<=O(nlogn) 则,存在一种使m种输入的线性时间运行的比较排序算法。

令m= n!/2,log(n!/2)=logn!-1>=nlogn-nloge-1


8.1-4 现有n个元素要排序。该输入序列包含n/k个子序列,每一个包含k个元素。每个子序列中的元素都小于后继子序列中的元素,大于前驱子序列中的元素。这样,只要对各n/k子序列中的k元素排序,就可以得到对整个输入序列长度为n的排序结果。证明:这个排序问题中所需的比较次数有一个下界Ω(nlogk)。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值