算法导论第六章 堆排序C++源码(附图)

MaxHeapify(A,2):2号节点与它的子节点中较大者换位置,一直到最下一层或子节点都比它小。

 

BuildMaxHeap:从length[A]/2节点开始一直到1号节点,调用MaxHeapify,算法结束时,形成最大堆。最大堆的特点是任意节点都比它的两个子节点的值大。

 

HeapSort:主要算法。直接调用BuildMaxHeap,BuildMaxHeap调用Heapify建立最大堆。将堆顶元素即最大元素与最后一个元素换位置,数组长度-1,这样原堆顶元素就被放到了最后的位置。之后,用Max-Heapify实现重建堆。

posted @ 2011-02-14 20:37  SunnyDay2015  阅读(701)  评论(0编辑  收藏  举报