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

一、生成小根堆

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

转载于:https://www.cnblogs.com/CQBZOIer-zyy/p/5185411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值