用一组{14,15,30,28,5,10}关键字序列,写出初始建堆过程图示,再根据初始堆写出堆排序过程图示。
创始人
2024-08-22 17:07:26
0次
用一组{14,15,30,28,5,10}关键字序列,写出初始建堆过程图示,再根据初始堆写出堆排序过程图示。
起始序列为14,15,30,28,5,10,
(1)因此起始堆的情况如下:
14
15
30
28
5
10
(2)假设是打算得到一个从小到大的序列,所以需要建大顶堆,起始状态从下向上建堆:
第一步:
第二步:
14
30
28
30
28
14
25
5
10
25
5
10
(3)此时已经建立完了初始的堆。此时堆顶元素30即为最大元素,将堆顶元素与堆最后
一个元素进行交换,此时30是最大元素位于队尾,因此无需继续排序。所以堆如下图
所示:
10
28
14
25
5
(4)此时由于除被交换到堆顶的10以外其他的都基本有序,所以自上而下建堆得到的堆
如下:
28
25
14
10
5
(5)重复(3)和(4)步骤确定了28的位置并得到堆如下:
25
10
14
5
(6)重复(3)和(4)步骤确定了25的位置并得到堆如下:
14
10
5
(7)重复(3)和(4)步骤确定了14的位置并得到堆如下:
10
5
(8)重复(3)和(4)步骤确定了10的位置,此时只有一个数5也位于了堆的第一个位置,
因此排序完成
“建堆”就是将数据元素依次按完全二叉树的结构填入,再调整...
则完全二叉树的节点编号1-6的元素初始内容依次为14
15
30
28
5
10
排序的过程:(以下为小根堆过程)
建堆步骤1
14
15
30
28
5
10
建堆步骤2
14
15
10
28
5
30
建堆步骤3
14
5
10
28
15
30
5
14
10
28
15
30(维护堆的性质)
建堆(小根堆)完成
相关内容
梁羽生小说顺序
梁羽生小说顺序梁医生最好的小说是《云海玉弓缘》。【萍踪系列】 1...
2024-12-29 15:36:18