C 氣泡排序(BubbleSort)

2021-09-17 02:24:24 字數 873 閱讀 3289

一、思路:

氣泡排序演算法原理:

1.比較相鄰的元素。如果第乙個數比第二個數大,就交換他們兩個。

2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3.針對所有的元素重複以上的步驟,除了最後乙個。(因為最後乙個已經排好,是最大的數)

4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。(接著排第二大的數,一直下去)

如:使用氣泡排序:25 16 9 90 23

第一輪:如果某個數大於後面的數,那麼就交換;

第一次  16 25  9  90 23

第二次   16  9 25 90 23

…..最終: 16 9 25 23 90   最大的數就冒到了最後。

比較次數:4次

第二輪:得到第二大的數:9 16 23 25 90

到此,已經排好序,可以提前結束排序。

二、實現**:

#include using namespace std;

const int maxsize = 20;

// 氣泡排序:從小到大排序

template void bubblesort(t arr, int n)

}if(flag == 0) // 無交換,說明已經全部排好序,提前結束

break;

} // for

} // bubblesort

int main(int argc, const char * ar**)

測試結果:

氣泡排序 bubble sort

氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...

氣泡排序(Bubble Sort)

無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...

氣泡排序 Bubble Sort

維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...