排序演算法之氣泡排序

2021-10-01 05:14:34 字數 1091 閱讀 5385

本文主要介紹氣泡排序的原理及其**實現

氣泡排序只會操作相鄰的兩個資料。每次冒泡操作都會對相鄰的兩個元素進行比較,看是否滿足大小關係要求。如果不滿足就讓它倆互換。一次冒泡會讓至少一 個元素移動到它應該在的位置,重複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 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...