Bubble sort的c 方法實現

2021-08-20 16:13:03 字數 925 閱讀 9938

一.氣泡排序的基本思想

氣泡排序是我學習的第乙個排序,他的基本思想很簡單,就是按照順序兩個數字比大小如果前者大(小),就交換兩個數字的位置,想冒泡一樣

一共分兩層迴圈乙個內層迴圈乙個外層迴圈,內層迴圈負責換數字位置,外層迴圈負責內層迴圈的次數。

二.氣泡排序的優化

氣泡排序的優化一共有兩種一種是針對內層迴圈的優化另外是針對外層迴圈的優化。

外層迴圈的優化:先設定乙個標記如果標記沒有執行到內層迴圈(完全不用交換)則直接跳出氣泡排序

內層迴圈的優化:針對如果乙個陣列之前有一小部分資料有順序(從開頭有序)就直接轉到有序的最後乙個位置

如上圖所示這樣就完成了兩種優化。

三.時間複雜度

最好結果(有序為最好):o(n)複雜度只用遍歷一遍陣列即可退出

最壞結果(完全倒序)o(n^2)

平均時間複雜度:o(n^2)

四.**實現

void bubblesort1(int *arr,int length)//氣泡排序基礎的**}}

}void bubblesort2(int *arr,int length)//外層優化

}if(flag==0)

}}void bubblesort3(int *arr,int length)//加上內層優化

}if(flag==0)

i=length-flag-1;}}

五.穩定性

氣泡排序是穩定的,可以理解為裡面沒有相等兩數交換就穩定

有問題歡迎提問---------!

jacobi,seidel,sor方法的c 實現

沒有進行收斂性判斷,只是演算法的單純求解 include include include using namespace std const int n 4 檔案的行列數 陣列求max double max array double err n return max 分離矩陣確定d void arr...

C 氣泡排序(BubbleSort)

一 思路 氣泡排序演算法原理 1.比較相鄰的元素。如果第乙個數比第二個數大,就交換他們兩個。2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。因為最後乙個已經排好,是最大的數 4.持續每次對越來越少的...

C語言 氣泡排序 BubbleSort

氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 ...