设待排序的关键字序列为{12,2,16,30,28,10,16*,20,6,18},试分别写出使用以下排序方法,每趟排序结束后关键字序列的状态。

直接插入排序:

①直接插入排序

[2    12]   16   30   28   10   16*   20   6    18        

[2    12    16]  30   28   10   16*   20   6    18        

[2    12    16   30]  28   10   16*   20   6    18        

[2    12    16   28   30]  10   16*   20   6    18        

[2    10    12   16   28  30]   16*   20   6    18        

[2    10    12   16   16*  28   30]   20   6    18        

[2    10    12   16   16*  20   28   30]   6    18        

[2    6     10   12   16  16*   20   28   30]   18        

[2    6     10   12   16  16*    18   20   28   30]

②希尔排序

10   2    16   6    18   12   16*   20  30    28 (增量选取5)

6    2    12   10   18   16   16*   20  30    28 (增量选取3)

2    6    10   12   16   16*  18      20  28    30 (增量选取1)

③简单选择排序

image

一直取最小/最大 和后面的交换位置

④ 冒泡排序

2    12   16    28   10   16*  20   6     18   [30]       

2    12   16    10   16*  20   6    18    [28   30]       

2    12   10    16   16*  6     18   [20   28   30]         

2    10   12    16   6   16*    [18   20   28   30]         

2    10   12    6   16   [16*    18   20   28   30]        

2    10   6    12   [16   16*    18   20   28   30]       

2    6   10    [12   16   16*    18   20   28   30]

2    6   10    12   16   16*    18   20   28   30]      

⑤快速排序

12  [6    2  10]  12  [28  30  16*  20   16  18]         

6   [2]  6   [10]  12  [28  30  16*  20   16  18 ]        

28  2    6   10   12  [18  16  16*  20 ] 28  [30 ]      

18  2   6   10  12   [16*  16]  18  [20]  28  30         

16*     2   6   10  12   16* [16]   18  20   28  30

Logo

汇聚原天河团队并行计算工程师、中科院计算所专家以及头部AI名企HPC专家,助力解决“卡脖子”问题

更多推荐