1. 程式人生 > >C 氣泡排序

C 氣泡排序

簡而言之就是往上冒泡泡

氣泡排序,顧名思義,就是相鄰的兩項不斷地比較,要是條件成熟就互換,就這樣。

//冒泡
void BubbleSort(int a[], int n){
    int i, j, temp, flag = 1;
    //n個數,一共跑n-1趟就好了,n-1個就拍好了,最後一個肯定是好的
    for (i = 0; i < n-1; i++) {
        flag = 0;
        /*
        這裡從後往前走,數字小的會不斷地交換到前面,肯定的是,每排一次
        最前面的一定是在拍的這些數字裡最小的;排過之後,下一趟就排剩下的
        好了,直到都排完。
        當然如果在n-1趟之前排完之後,跳出來就好了。
        */
for (j = n-1; j > i; j--) { if(a[j-1] > a[j]){ //只要發生交換說明這一趟還並沒有真正的有序 temp = a[j]; a[j] = a[j-1]; a[j-1] = temp; flag = 1; } } //要是沒有發生交換,說明就已經有序那就OK了 if(flag == 0) return
; } } //初始值 5260391748 一次 0526139478 二次 0152634978 三次 0125364798 四次 0123546789 五次已經排完 0123456789 六次確認一次,使得falg為0,跳出來 0123456789