氣泡排序法(Bubble Sort)是排序演算法(sorting algorithm)中較簡易的一種。其運作的原理是藉由逐次比較相鄰的兩筆資料,並依照排序條件(由大至小或由小至大)交換資料直到排序完成為止。
Step-by-step example
接下來我們就用氣泡排序法來對“5 1 4 2 8”這個數列由小至大進行排序。每一步我們都會對紅色的那組數字進行比較,接下來是範例演示:
( 5 1 4 2 8 ) → ( 1 5 4 2 8 ). 首先比較前兩個數。因為5 > 1,所以交換位置。
( 1 5 4 2 8 ) → ( 1 4 5 2 8 ). 因為5 > 4,所以交換位置。
( 1 4 5 2 8 ) → ( 1 4 2 5 8 ). 因為5 > 2,所以交換位置。
( 1 4 2 5 8 ) → ( 1 4 2 5 8 ). 現在因為這兩個數已經符合由小至大的順序,所以不用交換。
我們可以發現,經過第1輪的4次比較之後,最大數字8已經被確定了。
( 1 4 2 5 8 ) → ( 1 4 2 5 8 ).
( 1 4 2 5 8 ) → ( 1 2 4 5 8 ). 因為4 > 2,所以交換位置。
( 1 2 4 5 8 ) → ( 1 2 4 5 8 ).
我們可以發現,經過第2輪的3次比較之後,第二大的數字5已經被確定了。
·
.
.
<(5-1=4)-th Pass>
經過這一輪比較,最小的數字1就被確定了。
你可能會需要寫兩層for-loops (nested for-loops):
1. 外層的for-loop 做n-1 輪大迴圈。
2. 內層 for-loop 執行每一輪內的換位操作。
接下來會提供一段不完全的範例code:
#includeInput
Input有兩行:
第一行包含一個整數N(0),表示需要排序的數列中數字的個數。
第二行包含由N個數字組成的數列,數字與數字之間用空格符號分開。Output
在Output中你需要印出經過排序後的數列。
注意在數列結尾處要添加換行符號。Sample Input Download
Sample Output Download
Tags
Discuss