java的冒泡排序算法
冒泡排序是一种简单的排序算法,通过重复遍历待排序序列,比较相邻元素并在必要时交换位置,最终实现排序。以下是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(n²)(数组完全逆序)