定義:每一趟依次比較相鄰的兩個數,將小數放在前面,大數放在後面,直到一趟只剩下乙個元素。
時間複雜度:o(n^2)。
氣泡排序是最常用的小型資料排序方式,下面是用c語言實現的,及其兩種優化方式。
第一種優化方式是設定乙個標記位來標記是否發生了交換,如果沒有發生交換就提前結束;
第二種優化方式是記錄最後發生交換的位置,作為下一趟比較結束的位置。
#include /*
* 列印陣列
* */
void printarray(int arr, int n)
printf("\n");}/*
* 氣泡排序
* */
void bubblesort(int arr, int n)
} } }/*
* 氣泡排序優化一
* 設定乙個標記來標誌一趟比較是否發生交換
* 如果沒有發生交換,則陣列已經有序
* */
void bubblesort1(int arr, int n)
} if (flag == 0)
} }/* * 氣泡排序優化二
* 用乙個變數記錄下最後乙個發生交換的位置,後面沒有發生交換的已經有序
* 所以可以用這個值來作為下一次比較結束的位置
* */
void bubblesort2(int arr, int n)
} }
}int main() ;
printarray(arr, 10);
bubblesort2(arr, 10);
printarray(arr, 10);
return 0;
}
兩種氣泡排序的比較及冒泡演算法優化
第一種 void bubblesort int array,int len if noswap break 第二種 void bubblesort int array,int len if noswap break 沒有優化 void bubblesort1 int arr,int len 沒有優化...
氣泡排序的兩種方式
氣泡排序的方式有兩種 氣泡排序方法一 將n i 這個位置的數與它後面的數進行比較,如果n i n i x 那麼說明n i x 更小,因此將n i 和n i x 的數互換位置。互換位置後,n i 便是乙個更小的數。接著用新的n i 與後面的數比較,可以連續得到更小的數,直到取得最小數。如果i 0,那麼...
C C 排序演算法(一)氣泡排序及兩種優化
void bubblesort int arr,int length 演算法步驟 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元...