氣泡排序及兩種優化方式

2021-07-04 18:21:36 字數 866 閱讀 1419

定義:每一趟依次比較相鄰的兩個數,將小數放在前面,大數放在後面,直到一趟只剩下乙個元素。

時間複雜度: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 演算法步驟 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元...