氣泡排序三種實現方法

2021-06-18 02:54:30 字數 855 閱讀 4201

氣泡排序是非常容易理解和實現,以從小到大排序舉例:

設陣列長度為n。

1.比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。

2.這樣對陣列的第

0個資料到

n-1個資料進行一次遍歷後,最大的乙個資料就「沉」到陣列第

n-1個位置。

3.n=n-1

,如果n不為0

就重複前面二步,否則排序完成。

按照定義很容易寫出**:

//氣泡排序1

void bubblesort1(inta, int n)

下面對其進行優化,設定乙個標誌,如果這一趟發生了交換,則為

true

,否則為

false

。明顯如果有一趟沒有發生交換,說明排序已經完成。

//氣泡排序2

void bubblesort2(inta, int n)

k--;

}}

再做進一步的優化。如果有

100個數的陣列,僅前面

10個無序,後面

90個都已排好序且都大於前面

10個數字,那麼在第一趟遍歷後,最後發生交換的位置必定小於

10,且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。

//氣泡排序3

void bubblesort3(inta, int n)

}}

氣泡排序畢竟是一種效率低下的排序方法,在資料規模很小時,可以採用。資料規模比較大時,最好用其它排序方法。

氣泡排序的三種實現方法

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

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

主要內容 1 氣泡排序 2 氣泡排序實現1 3 氣泡排序實現2 4 氣泡排序實現3 氣泡排序是簡單的一種排序方法,效率低下,複雜度為o n 2 其具體的演算法流程如下 1 演算法需要對陣列遍歷n 1遍 2 在每一次遍歷中,比較前後相鄰元素的大小,如果第乙個比第二個大,則交換他們,這樣第一次遍歷之後陣...

氣泡排序的三種實現

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