首页 > 编程语言 > 详细

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

时间:2016-02-09 08:04:26      阅读:225      评论:0      收藏:0      [点我收藏+]

一、生成小根堆

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

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

原文:http://www.cnblogs.com/CQBZOIer-zyy/p/5185411.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!