氣泡式排序就是利用比大小的方式將一組數字,和第一順位的值相比,若數值比第一各數字小的,就和第一各數交換,經過一回合後,再和第二各值以相同的方式循環,一直到排出來為止。
- 第一回合,所有的數都和第一各值"4"相比較
4 | 6 | 5 | 2 | 3 |
於是,4和6相比的結果,4比六小,所以放在原位;然後4再和5相比,一樣是4比較小,一直到4和2相比大小時,2比四小,所以4和2的位置對調變成:
2 | 6 | 5 | 4 | 3 |
然後再以2和下一各數字3相比,完成第一各回合;
- 第二回合,拿第二各數字"6"和後面的數值相比較
2 | 6 | 5 | 4 | 3 |
第一各是6和5的比較,5比6小,所以5和6調換位置,再來5和4比較,然後再調位置,就這樣一直延續下去,直到所有的值都對完一次
2 | 5 | 6 | 4 | 3 |
所以總共比大小的次數會是 (n-1)*(n-2)次,自己算算看吧,下面是用java寫的的範例
- 範例
class sort {
public static void main(String args[]){
int arr[]={5,3,4,2,6,81,1};
System.out.print ("原來的陣列:");
for(int i=0;i
System.out.print(arr[i]+ " ");
}
for(int j=0;j
for(int k=j+1;k
if(arr[j]>arr[k]){
int temp;
temp=arr[k];
arr[k]=arr[j];
arr[j]=temp;
}
}
}
System.out.print ("排序後的陣列:");
for(int i=0;i
System.out.print(arr[i]+ " ");
}
}
沒有留言:
張貼留言