天天看点

数据结构示例——堆排序过程

例:对{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}进行堆排序的过程。

算法如下:

(1)循环建立初始堆

用给出的序列构造堆的初始状态如下:

数据结构示例——堆排序过程

在此基础上,根据上述代码,从最后一个分支节点开始调整,目标是得到大根堆。过程如下图:

数据结构示例——堆排序过程

这个堆的存储结构是:

数据结构示例——堆排序过程

(2)进行n-1次循环,完成推排序

过程图示如下:

数据结构示例——堆排序过程

请继续补充画完。

继续阅读