多種排序方式 —— 待補充

以 3,2,1,5,4 爲例

一、冒泡排序

框住的兩個數就是被比較的兩個數,小數要在左邊,大數要到右邊去。

1. 第一輪,選出最大值

(1)【 3,2】,1,5,4

因爲 3 > 2,所以 2 移動到 3 的左邊

(2)2,【 3,1】,5,4

因爲 3 > 1, 所以 1 移動到 3 的左邊

(3)2,1,【 3,5】,4

因爲 3 < 5,所以不需要移動

(4)2,1,3,【 5,4】

因爲 5 > 4, 所以 4 移動到 5 的左邊

至此,第一輪比較已經結束,總共進行了4次比較。我們可以看到,現在的排序狀態是 [2,1,3,4,5]。最大值 5 已經被成功地“運輸”到了最右邊,因此,我們只需要比較前面的四個數,找出第二個最大值,並將其“運輸”到倒數第二個位置。

2. 第二輪

紅色的數字代表已經被固定

(1)【2,1】,3,4,5

因爲 2 > 1,所以 1 移動到 2 的左邊。

(2)1,【2,3】,4,5

不變。

(3)1,2,【3,4】,5

不變。

至此,第二輪比較結束,總共進行了 3 次比較。我們可以看到,現在的排序狀態是 [1,2,3,45]。4 在這個時候已經處於 倒數第二個位置。其實我們肉眼看上去已經排序完畢了,但是計算機是不會察覺的,它只知道,此時倒數第二個數一定是第二大的,因此我們的冒泡排序還是要繼續進行。

3. 第三輪

(1)【1,2】,3,45

不變。

(2)1,【2,3】,45

不變。

至此,第三輪比較結束,總共進行了 2 次比較。我們可以看到,現在的排序狀態是 [1,2,345]。倒數第三個數成爲第三大數值。

3. 第四輪

(1)【1,2】,345

不變。

至此,第四輪比較結束,總共進行了 1 次比較。此時數列的狀態是 [1,2345] ,除了第一個數外的其它數值都固定住了,顯然第一個數就是最小的那個數了。因此,我們的冒泡排序就到此結束了。


待補充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章