2.4.20证明:基于下沉的堆构造方法使用的比较次数小于2N,交换次数小于N。 证:
使用sink方法构造一个N个元素的堆,最坏情况下需要处理
N/2/2个大小为3=2^2-1堆,
N/2/2/2个大小为7=2^3-1的堆,
N/2/2/2/2个大小为15=2^4-1的堆,
...
N/2^i个大小为2^i-1的堆。
对于一个大小为2^i-1的堆,最坏情况下需要将堆顶点交换到叶结点位置,交换次数为堆的高度h=i-1,
那么将上述每个堆的堆高相加就得到最多的交换次数C(N),
又因在堆中最坏情况比较次数D(N)为两个子结点的一次比较,和堆顶点与两个子结点中大者进行比较,所以最坏情况下比较次数为2倍交换次数,D(N)=2C(N)<2N。