C 簡單排序演算法之氣泡排序

2021-07-22 13:56:02 字數 1367 閱讀 2069

氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。

它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

氣泡排序演算法的運作如下:(從後往前)

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

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

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

#include 

using

namespace

std;

//exchange the 2 items a and b

void swap(int &a, int &b)

//ergodic the buf and print it

void ergodic(int *p,int length)

}void bubblesort(int *p, int length)}}

}int main(int argc, char *args)

; int m = sizeof(buf);

cout

<< "排序前:"

<< endl;

ergodic(buf,sizeof(buf)/sizeof(int));

bubblesort(buf, sizeof(buf) / sizeof(int));

cout

<< "\n\n\n排序後:"

<< endl;

ergodic(buf, sizeof(buf) / sizeof(int));

getchar();

}

氣泡排序的思想就是將第乙個元素與第二個元素比較,如果第乙個元素比第二個元素大,那麼就將兩者交換,並繼續用第二個元素和第三個元素比較,在乙個迴圈結束後,最大的元素會沉到陣列的最右邊,因此,下次迴圈就直接到倒數第二個元素為止,最後的一次迴圈就只剩第乙個元素,至此,所有元素都排列完成。這種排序是按照從小到大排序,;還可以按照從大到小的順序排列,即最大的向左沉,**如下:

void bubblesort(int

*p, int

length)}}

/*for (int i = 0; i < 10; i++)

}}*/

}

執行結果

C 簡單排序演算法之氣泡排序

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個...

簡單排序 氣泡排序

1.排序演算法的簡要介紹 排序是非常重要的的並且是非常耗時的,所以它已經成為乙個電腦科學中廣泛研究的課題,而且人們已經研究出了一些非常成熟的演算法。目前最簡單的排序演算法包括 氣泡排序 選擇排序和插入排序。每乙個演算法都由乙個例項說明。更加複雜的排序演算法包括 希爾排序和快速排序。儘管簡單排序演算法...

排序演算法之簡單排序

進入找工作倒計時狀態了,計畫好好複習一下資料結構和相關演算法,估計用兩天時間把見過的排序演算法整理下,首先看一下時間複雜度為o n2 的演算法。首先參考大話資料結構定義乙個鍊錶類 include define maxsize 1000 using namespace std class sqlist...