[数据结构]堆的建立和排序

一、生成小根堆

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软件所作。

posted @ 2016-02-09 06:36  zyy是一只超级大沙茶  阅读(421)  评论(0编辑  收藏  举报