Algs4-2.4.20证明:基于下沉的堆构造方法的比较次数、交换次数

 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。

posted @ 2018-10-29 08:49  修电脑的龙生  阅读(502)  评论(0编辑  收藏  举报