考研数据结构排序算法

设待排序的关键字序列为{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

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值