[数据结构]堆的建立和排序
一、生成小根堆
1、随机生成一棵完全二叉树

2、调整结点56及其子树

3、调整结点77及其子树

4、调整结点45及其子树

5、调整结点18及其子树

6、调整结点29及其子树
(1)调整几点29及其左、右儿子

(2)调整结点29及其左、右儿子

二、堆排序
1、取出当前最小元素3
(1)掐尖

(2)将结点65放到堆顶

(3)交换结点65与结点7

(4)交换节点65与结点29

2、取出当前最小元素7
(1)掐尖

(2)将结点30放到堆顶

(3)交换结点30与结点18

(4)交换结点30与结点29’

(5)已形成一个新的堆,不用再交换
3、取出当前最小元素18
(1)掐尖

(2)将结点77放到堆顶

(3)交换结点77与结点29’

(4)交换结点77与结点30

说明:以上图形为graphviz软件所作。

浙公网安备 33010602011771号