冒泡排序
冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序演算法,
它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來,走訪元素的作業是重復地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成,
這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二訊訓碳的氣泡最侄訓上浮到頂端一樣,故名“冒泡排序”,
| 中文名 | 外文名 | 時間復雜度 | 實質 |
|---|---|---|---|
| 冒泡排序 | Bubble Sort | O(n2) | 把小(大)的元素往前(后)調 |
/**
* 冒泡排序
*/
// 定義陣列
int[] array = new int[]{5, 3, 1, 6, 2, 19, 7, 88, 32};
// 定義并初始化一個int型別的臨時變數
int temporary = 0;
// 外層回圈控制陣列排序共需要回圈多少次(每次相鄰的兩個元素進行比較,只需要比較陣列總元素個數-1次)
for (int i = 0; i < array.length - 1; i++) {
// 內層回圈控制第i次排序需比較多少次
//(例如:第一次排序后會確定陣列中最大的一個數,且不再參與比較,第二次再確定一個除最大數以外較大的數,以此類推)
// 所以每次回圈(陣列的長度-i-1)次數即可,
// 不可以使用(陣列的長度-j-1),會導致回圈提前結束而不計算陣列中剩余元素的比較
for (int j = 0; j < array.length - i - 1; j++) {
// 相鄰的兩個元素進行比較,將較大的元素賦值給臨時變數,從而實作換位操作
if (array[j] > array[j + 1]) {
temporary = array[j];
array[j] = array[j + 1];
array[j + 1] = temporary;
}
}
}
// 遍歷排序后陣列中的元素
for (int k = 0; k < array.length; k++) {
System.out.println(array[k]);
}
}
}
控制臺輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146275.html
標籤:Java
上一篇:文本檔案讀取
