码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-02-09 08:05:05      阅读:187      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!