建立堆结构: ()
() ()
()是大堆 ()是大堆()是小堆
()不是堆调成大堆
类似叙述():不是堆 调成大顶堆
()①是堆 ②不是堆 调成堆
()①是堆 ②不是堆 调成大堆(图略) ():略
在内部排序方法中一趟排序后只有简单选择排序和冒泡排序可以选出一个最大(或最小)元素并加入到已有的有序子序列中但要比较n次选次大元素要再比较n次其时间复杂度是O(n)从个元素中选个元素不能使用这种方法而快速排序插入排序归并排序基数排序等时间性能好的排序都要等到最后才能确定各元素位置只有堆排序在未结束全部排序前可以有部分排序结果建立堆后堆顶元素就是最大(或最小视大堆或小堆而定)元素然后调堆又选出次大(小)元素凡要求在n个元素中选出k(k<<nk>)个最大(或最小)元素一般均使用堆排序因为堆排序建堆比较次数至多不超过n对深度为k的堆在调堆算法中进行的关键字的比较次数至多为(k)次且辅助空间为O()
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []