本文主要介紹氣泡排序的原理及其**實現
氣泡排序只會操作相鄰的兩個資料。每次冒泡操作都會對相鄰的兩個元素進行比較,看是否滿足大小關係要求。如果不滿足就讓它倆互換。一次冒泡會讓至少一 個元素移動到它應該在的位置,重複n次,就完成了n個資料的排序工作
首先,來看一組資料4,5,6,3,2,1,從小到大進行排序,第一趟冒泡的結果如下圖所示:
從上圖可以知道,每趟冒泡都是在執行如下操作:判斷和交換.這兩個操作想必大家都很熟悉了.**實現如下:
for
(int j=
0;j1;j++)if
(a[j]
> a[j+1]
)//這是氣泡排序的核心**
當第一趟冒泡結束之後,將本趟冒泡產生的最大數或者最小數放置到陣列的末端,同時它將不在參與下一次排序.例如:第一趟排序之後,6是陣列中最大的數,將6賦值給a[5],a[5]便變成了a[0]~a[5]中最大的數,a[5]就不用在參與後面的排序了;第二趟排序之後,將5賦值給a[4],a[4]便變成了a[0]~a[4]中最大的數,a[4]也不用在參與後面的排序,以此類推.一共需要進行n趟才能將陣列排序完畢,例如:上述陣列a的長度n=6,經歷了6趟.**實現如下:
public void
bubblesort
(int a,
int n)}}
}
氣泡排序的優化
當某次冒泡操作已經沒有資料交換時,說明已經達到完全有序,不用再繼續執行後續的冒泡操作。
**實現如下:
public void
bubblesort
(int a,
int n)}if
(!flag)
break
;//沒有資料交換提前退出
}}
排序演算法之氣泡排序
參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...
排序演算法之氣泡排序
對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...
排序演算法之氣泡排序
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...