9-2 设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试分别写出使用以下排序
方法每趟排序后的结果。并说明做了多少次排序码比较。
(1) 直接插入排序 (2) 希尔排序(增量为 5,2,1) (3) 起泡排序
(4) 快速排序 (5) 直接选择排序 (6) 基数排序
(7) 堆排序 (8) 二路归并排序
(7) 堆排序
第一步,形成初始的最大堆 (略),第二步,做堆排序。
初始排列,不是最大堆 形成初始最大堆 交换 0
#
与 9
#
对象
从 0# 到 8# 重新形成堆 交换 0# 与 8# 对象 从 0# 到 7# 重新形成堆
交换 0# 与 7# 对象 从 0# 到 6# 重新形成堆 交换 0# 与 6# 对象
从 0# 到 5# 重新形成堆 交换 0# 与 5# 对象 从 0# 到 4# 重新形成堆
12
2 16
30 28 10 16
*
20 6 18
30
28 16
20 18 10 16
*
2 6 12
12
28 16
20 18 10 16
*
2
6
30
28
20 16
12 18 10 16
*
2 6 30
6
20 16
12 18 10 16
*
2
28
30
20
18 16
12 6 10 16
*
2 28 30
2
18 16
12 6 10 16
*
20 28 30
18
12 16
2 6 10 16
*
20
28
30
12 16
2 6 10
16
*
20
28
30
18
10
12 16
2 6
16
*
20 28 30
10
12 16
2 6 16
*
20 28 30
18 18
16
12 10
2 6 16
*
20 28 30
18
6
12 10
12
6 10
2
6 10
12 16 16
*
18