CLRS 6.4堆排序算法

6.4-1
此题画图太多,在此省略。

6.4-2
初始化:子数组 A[i+1n] 为空,成立;
保持: A[1] A[1i] 中最大的元素,但又比 A[i+1n] 中元素要小。当我们把它放到第 i 的位置时,A[in] 包含已排序的最大一些元素。然后减小堆的大小并调用MAX-HEAPIFY使 A[1i1] 成为最大堆。将 i 减一进入下一次循环。
终止:当 i=1,意味着 A[2n] 已排序,且 A[1] 是数组中最小的元素。这时候数组就有序了。

6.4-3
都是 Θ(nlgn)

6.4-4
最坏情况是排序阶段每次调用MAX-HEAPIFY时都进行最大次数的交换,总的交换次数为:

Ti=2nlgn=Θ(nlgn)=Ω(nlgn)

6.4-5
证明请参考Schaffer 和 Sedgewick 在 1992 年发表的堆排序性能分析 “The analysis of heapsort”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值