摘要:
算法导论 第六章 堆排序堆是一个棵完全二叉树,通常用一个数组表示。这样的数组有两个属性:lenght(A)是数组中的元素个数,heap-size(A)是存放在A中的堆的元素个数。堆排序的时间复杂度为O(nlgn).给定堆中结点i的下标,其父为i/2,其左孩子为i*2,右孩子为i*2 + 1。堆分为大根堆和小根堆。小根堆通常在构造优先级队列时使用。常用的过程有:max-heaplify (堆调整)、build-max-heap (堆构造)、heap-sort (堆排序)。以下程序根据书中思想而来: 1 /** 2 * Max Heap Sort 3 * It is a in-place so.. 阅读全文