1、每一次迴圈結束之後,都要找出最大的資料,放到參與比較的這堆資料的最右邊。(冒出最大的那個氣泡。)
2、核心:
拿著左邊的數字和右邊的數字比對,當左邊 > 右邊的時候,交換位置。
原始資料:
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比較,不需要交換位置)
public
class
bubblesort
;//個數為9,迴圈8次
// 9條資料,迴圈8次。以下的**可以迴圈8次。
/* for(int i = 0; i < arr.length-1; i++)
*///氣泡排序的外層迴圈採用這種方式
int count =0;
//定義乙個計數器,測試總迴圈次數
int count1 =0;
//定義乙個比較次數計數器,測試總比較次數
for(
int i =
0; i < array.length -
1; i++)}
} system.out.
println
("總迴圈次數:"
+ count)
; system.out.
println
("交換位置的次數:"
+ count1)
;//遍歷輸出的陣列
for(
int i =
0; i < array.length ; i++)}
}
總迴圈次數:36
交換位置的次數:2112
4568
1112
34
氣泡排序演算法 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個中最...