冒泡排序是一種簡單的排序算法,通過重復遍歷待排序序列,比較相鄰元素并在必要時交換位置,最終實現排序。以下是Java實現的詳細說明:
核心原理
- ?比較相鄰元素?:從序列第一個元素開始,逐對比較相鄰元素的大小。
- ?交換條件?:若前一個元素大于后一個元素(升序排序),則交換兩者位置。
- ?重復迭代?:每輪排序將最大元素“冒泡”到序列末尾,后續迭代逐步減少已排序的元素。
代碼實現
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交換元素位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}?
}
System.out.println("第" + (i + 1) + "趟:" + Arrays.toString(arr));
}
}
時間復雜度
- ?最佳情況?:O(n)(數組已排序)
- ?平均情況/最壞情況?:O(n2)(數組完全逆序)