10357 - 氣泡排序法   

Description

氣泡排序法(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

#include 
  

Input

Input有兩行: 
第一行包含一個整數N0),表示需要排序的數列中數字的個數。
第二行包含由N個數字組成的數列,數字與數字之間用空格符號分開。

Output

Output中你需要印出經過排序後的數列。
注意在數列結尾處要添加換行符號。

Sample Input  Download

Sample Output  Download

Tags




Discuss