Bubble Sort (泡泡排序法)
概念 - 教學影片
將要排序的對象分作兩部份,一個是已排序的,一個是未排序的。
排序時若是從小到大,最大元素會如同氣泡一樣移至右端,其利用比較相鄰元素的方式,將較大元素交換至右端,所以較大的元素會不斷往右移動,直到適當的位置為止。
作法
- 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
- 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
- 針對所有的元素重複以上的步驟,除了最後一個。
- 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
Pseudo Code
const int N = 5;
int students[N] = {4,3,5,1,7};
for ( int i = 0 ; i < N ; i++ ){
for ( int j = 0 ; j < N-i-1 ; j++ ){
if ( students[j] > students[j+1] ){
// swap( students[j], students[j+1] );
}
}
}