天天看點

排序_應用題_手寫排序過程直接插入排序折半插入排序希爾排序冒泡排序快速排序簡單選擇排序

題設:

​ 待排序的關鍵字序列為「12,2,16,30,28,10,16*,20,6,18」,則每趟排序結束後的關鍵字序列的狀态如下所示。

直接插入排序

[0] 12 2 16 30 28 10 16* 20 6 18
[1] 2 12 16 30 28 10 16* 20 6 18
[2] 2 12 16 30 28 10 16* 20 6 18
[3] 2 12 16 30 28 10 16* 20 6 18
[4] 2 12 16 28 30 10 16* 20 6 18
[5] 2 10 12 16 28 30 16* 20 6 18
[6] 2 10 12 16 16* 28 30 20 6 18
[7] 2 10 12 16 16* 20 28 30 6 18
[8] 2 6 10 12 16 16* 20 28 30 18
[9] 2 6 10 12 16 16* 18 20 28 30
           

折半插入排序

[0] 12 2 16 30 28 10 16* 20 6 18
[1] 2 12 16 30 28 10 16* 20 6 18
[2] 2 12 16 30 28 10 16* 20 6 18 
[3] 2 12 16 30 28 10 16* 20 6 18
[4] 2 12 16 28 30 10 16* 20 6 18
[5] 2 10 12 16 28 30 16* 20 6 18
[6] 2 10 12 16* 16 28 30 20 6 18
[7] 2 10 12 16* 16 20 28 30 6 18
[8] 2 6 10 12 16* 16 20 28 30 18
[9] 2 6 10 12 16* 16 18 20 28 30
           

希爾排序

選取增量為5、3和1。
[0] 12 2 16 30 28 10 16* 20 6 18
[1] 2 10 12 16* 6 16 18 20 18 30
[2] 2 10 6 12 16* 16 18 20 28 30
[3] 2 6 10 12 16* 12 18 20 28 30
           

冒泡排序

[0] 12 2 16 30 28 10 16* 6 18
[1] 2 12 16 28 10 16* 6 18 30
[2] 2 12 16 10 16* 6 18 28 30
[3] 2 12 10 16 6 16* 18 28 30
[4] 2 10 12 6 16 16* 18 28 30
[5] 2 10 6 12 16 16* 18 28 30
[6] 2 6 10 12 16 16* 18 28 30
           

快速排序

[0] 12 2 16 30 28 10 16* 6 18
[1] 2 10 6 12 16 30 28 16* 18
[2] 2 6 10 12 16 16* 16 28 30
           

簡單選擇排序

[0] 12 2 16 30 28 10 16* 6 18
[1] 2 12 16 30 28 10 16* 6 18
[2] 2 6 12 16 30 28 10 16* 18
[3] 2 6 10 12 16 30 28 16* 18
[4] 2 6 10 12 16 30 28 16* 18
[5] 2 6 10 12 16 30 28 16* 18
[6] 2 6 10 12 16 16* 30 28 18
[7] 2 6 10 12 16 16* 18 30 28 
[8] 2 6 10 12 16 16* 18 28 30
           

繼續閱讀