在開發中,對一組數據進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序算法是絕對有必要的
本文章介紹的是排序算法中較簡單的一種算法:冒泡排序
什麼是冒泡排序呢?
你可以這樣理解:(從小到大排序)存在10個不同大小的氣泡,由底至上地把較少的氣泡逐步地向上升,這樣經過遍歷一次後,最小的氣泡就會被上升到頂(下標爲0),然後再從底至上地這樣升,循環直至十個氣泡大小有序。
在冒泡排序中,最重要的思想是兩兩比較,將兩者較少的升上去
冒泡排序最壞情況的時間複雜度是O(n²)
排序代碼如下:
public class BubbleSort{
public void sort(int[] a){
int temp = 0;
//循環數組長度-1次
for (int i = a.length - 1; i > 0; --i){
//每次循環執行比較數組長度-1-循環次數
for (int j = 0; j < i; ++j){
//如果後面的小於前面的,則交換位置
if (a[j + 1] < a[j]){
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
}