堆排序(Heap Sort)
(可先回顾“排序算法”)
选择排序的基本思想:每一趟从待排序记录中选出关键字最小的记录,按顺序放在已排序的记录序列最后,直到全部记录排序好为止。
堆排序是一种树形选择排序,在排序过程中,将存储待排序记录的顺序表看成是一棵完全二叉树(区别满二叉树)的顺序存储结构。利用完全二叉树中父结点与子结点的内在关系,在当前无序的序列中选择关键字最小(或最大)的记录。
<条件>
1)堆的定义:
以任意结点为根结点,根结点的关键字都大于(或小于)左、右子树的根结点。
若堆顶记录的关键字最大,则称堆为大根堆,反之称小根堆。
2)完全二叉树的定义: