氣泡排序演算法

2021-10-18 10:45:11 字數 1372 閱讀 7235

基本介紹

通過對待排序序列從前向後(從下標較小的元素開始),依次比較相鄰元素的值,若發現逆序則交換,使值較大的元素逐漸從前面移向後面,就像水底下的氣泡一樣逐漸向上冒

優化

因為排序的過程中,各元素不斷接近自己的位置,如果一趟比較下來沒有進行過交換,就說明序列有序,因此要在排序過程中設定乙個標誌flag元素判斷是否進行過交換。從而減少不必要的比較。

演示冒泡過程的例子

原始資料:

3, 2, 7, 6, 8

第1次迴圈:(最大的跑到最右邊。)

2, 3, 7, 6, 8 (3和2比較,2 < 3,所以2和3交換位置)

2, 3, 7, 6, 8 (雖然不需要交換位置:但是3和7還是需要比較一次。)

2, 3, 6, 7, 8 (7和6交換位置)

2, 3, 6, 7, 8 (雖然不需要交換位置:但是3和7還是需要比較一次。)

經過第1次迴圈後,此時剩下參與比較的資料:2, 3, 6, 7

第2次迴圈:

2, 3, 6, 7 (2和3比較,不需要交換位置)

2, 3, 6, 7 (3和6比較,不需要交換位置)

2, 3, 6, 7 (6和7比較,不需要交換位置)

經過第2次迴圈後,此時剩下參與比較的資料:2, 3, 6

第3次迴圈:

2, 3, 6 (2和3比較,不需要交換位置)

2, 3, 6 (3和6比較,不需要交換位置)

經過第3次迴圈後,此時剩下參與比較的資料:2, 3

第4次迴圈:

2, 3 (2和3比較,不需要交換位置)

經過4次迴圈後,元素順序為:2,3,6,7,8

小結

1)一共進行 陣列的長度大小-1次的大迴圈

2)每一次排序的次數在逐漸的減少

3)如果在某躺排序中,沒有發生一次交換,則提前結束氣泡排序。(優化)

**實現

;bubblesort

(array)

; system.out.

println

(arrays.

tostring

(array));

//[12,23,34,45,45,56]

}public

static

void

bubblesort

(int

array)}if

(!flag)

else}}

}

氣泡排序演算法 C 氣泡排序演算法排序詳解

氣泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。c 氣泡排序演算法的例項源 一些排序方法的 集錦,該函式模板使用冒泡法對集合元素進行排序,引數說明 collection 集合物件,集合物件必須提供 操作。element 集合元素,該引數...

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

排序演算法 氣泡排序

一.氣泡排序的過程 公升值排序 1.將第乙個記錄的關鍵字與第二個記錄的關鍵字進行比較,若key 1 key 2 則交換。然後比較第二個與第三個,依此類推,直到第n 1個與第n個比較為止,第一趟排序完後,記錄最大的關鍵字會被排在最後面。2.將記錄的前n 1個關鍵字進行第二趟比較交換,直到前n 1個中最...