6.4-1
此题画图太多,在此省略。
6.4-2
初始化:子数组
A[i+1…n]
为空,成立;
保持:
A[1]
是
A[1…i]
中最大的元素,但又比
A[i+1…n]
中元素要小。当我们把它放到第
i
的位置时,MAX-HEAPIFY
使
A[1…i−1]
成为最大堆。将
i
减一进入下一次循环。
终止:当
6.4-3
都是
Θ(nlgn)
6.4-4
最坏情况是排序阶段每次调用MAX-HEAPIFY
时都进行最大次数的交换,总的交换次数为:
T≥∑i=2n⌊lgn⌋=Θ(nlgn)=Ω(nlgn)
6.4-5
证明请参考Schaffer 和 Sedgewick 在 1992 年发表的堆排序性能分析 “The analysis of heapsort”。