(排序)氣泡排序的三種實現

2021-09-08 10:53:42 字數 912 閱讀 3880

主要內容:

1、氣泡排序

2、氣泡排序實現1

3、氣泡排序實現2

4、氣泡排序實現3

氣泡排序是簡單的一種排序方法,效率低下,複雜度為o(n^2),其具體的演算法流程如下:

1、演算法需要對陣列遍歷n-1遍;

2、在每一次遍歷中,比較前後相鄰元素的大小,如果第乙個比第二個大,則交換他們,這樣第一次遍歷之後陣列最後乙個值就是最大值;

3、依次重複上面的步驟,就可以得到公升序排序的陣列。

複雜度分析:

最差時間複雜度(陣列從大到小,交換次數):(n-1)+(n-2)+……+1=n*(n-1)/2=o(n^2)

最好時間複雜度(陣列從小到大,交換次數):0

如上述原理:

//

***** bubblesort

void bubblesort1(int a,int

n) }

}}

設定乙個標識,如果在某一趟遍歷中沒有發生交換,說明排序已經完成,即演算法完成。

//

set flag to indicate which step to stop

void bubblesort2(int a,int

n) }

}}

如果陣列有100個數,僅前面10個無序,後面90個有序,那麼第一趟遍歷後,最後發生交換的位置必定小於10,記錄下這個位置,第二次遍歷只需要從陣列頭部遍歷到這個位置即可。

//

set flag to indicate what next step should begin from

void bubblesort3(int a,int

n) }

}}

氣泡排序的三種實現

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。按...

氣泡排序的三種實現

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。按...

氣泡排序的三種實現

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。按...