冒泡排序(Bubble Sort),是一種計(jì)算機(jī)科學(xué)領(lǐng)域的較簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。
冒泡排序算法的運(yùn)作如下:(從后往前)比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點(diǎn),最后的元素應(yīng)該會是最大的數(shù)。針對所有的元素重復(fù)以上的步驟,除了最后一個。持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
實(shí)現(xiàn)代碼如下:
#include <iostream>using namespace std;void PRint(int a[], int n ){ cout<<n <<":"; for(int j= 0; j<n; j++){ cout<<a[j] <<" "; } cout<<endl; } void InsertSort(int a[], int n) { for(int i= 0; i < n; i++) { int tmp = 0; for (int j = i+1; j < n; j++) { if (a[i] > a[j]) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } print(a,n); } } int main(){ int a[9] = {3,1,5,7,2,4,9,6,2}; InsertSort(a,9); print(a,9); } 計(jì)算結(jié)果如下:9:1 3 5 7 2 4 9 6 2
9:1 2 5 7 3 4 9 6 2
9:1 2 2 7 5 4 9 6 3
9:1 2 2 3 7 5 9 6 4
9:1 2 2 3 4 7 9 6 5
9:1 2 2 3 4 5 9 7 6
9:1 2 2 3 4 5 6 9 7
9:1 2 2 3 4 5 6 7 9
9:1 2 2 3 4 5 6 7 9
9:1 2 2 3 4 5 6 7 9
新聞熱點(diǎn)
疑難解答
圖片精選