堆排序过程实例

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

构造成
待排序列
调整
排序输出

调整
有序结果
步骤一:将待排序列构造成一个小顶堆的过程
(49,38,65,97,76,13,27,49)
49
调整 38
65
将待排序列采取顺序存储,生 成一棵完全二叉树
97 76 13 27 49 生成完全二叉树
4499
38
13
49 76 65 27
97
调整
49
38
65
49 97
输出13
调整
4997
38
27
49 76 65 97 13
49 76 65 49 13
4297
38
49
49 76 65 97 13
4398
49
49
97 76 65 27 13
4997
38
49
49 13
76 65 27
输出27 调整
4997
38
49
49 76 65 27 13
……………..
把除树根外,其它结点均符合堆
的定义的树重新Biblioteka Baidu整成堆的过程
是:
从树的根结点开始向下进行的。 A、如果当前结点没有孩子结点,则
调整结束;否则,将当前结点的左右孩 子进行比较,选其中关键字小者(或大 者)与当前结点关键字在比较;
B、如果,顺序对,则调整结束;否则 将当前结点与其关键字小的(或大的) 记录交换位置;
C、重复执行A、B,直到重新调整成 堆树。
K1 55
K2 40
70 K3
50 60 80 90
K4 K5 K6 K7
K1 40
K2 55
70 K3
50 60 80 90
K4 K5 K6 K7
K1 40
K2 50
70 K3
55 60 80 90
K4 K5 K6 K7
例:给定关键字集合 (49,38,65,97,76,13,27,49) 分析堆排序过程
76 13 27
4499
38
13
49 76 65 27
97
调整
4499
38
13
49 76 65 27
97
4193
38
27
49 97
76 65 49
形成小顶堆
步骤二:以形成的小顶堆为起点进行排序输出
4193
38
27
4997
38
27
49 76 65 49 97
4297
38
49
49 13
76 65 49
相关文档
最新文档