冒泡排序常规写法
时间: 2025-05-28 08:44:01 浏览: 18
### 冒泡排序算法的常规实现
冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较每对相邻项并按需要交换它们。这个过程会持续进行直到没有再需要交换为止[^4]。
以下是冒泡排序的一个典型 Java 实现:
```java
public class BubbleSort {
public static void bubbleSort(int[] arr) {
// 边界条件检查:如果数组为空或者只有一个元素,则无需排序
if (arr == null || arr.length < 2) {
return;
}
// 外层循环控制排序轮次
for (int end = arr.length - 1; end > 0; end--) {
// 内层循环负责逐一对比相邻元素
for (int i = 0; i < end; i++) {
// 如果前一个元素大于后一个元素,则交换两者的位置
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
}
}
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) {
int[] array = {5, 3, 8, 6, 2};
System.out.println("原始数组:");
printArray(array);
bubbleSort(array); // 调用冒泡排序函数
System.out.println("排序后的数组:");
printArray(array);
}
private static void printArray(int[] arr) {
for (int value : arr) {
System.out.print(value + " ");
}
System.out.println();
}
}
```
#### 解释代码逻辑
- **外层循环** 控制整个排序的过程,`end` 表示当前未排序部分的最大索引,在每一趟排序结束后减少一次。
- **内层循环** 遍历尚未完全有序的部分,逐一比较相邻两个元素。如果发现前者大于后者,则调用 `swap()` 方法交换这两个元素的位置。
- 当某一轮中没有任何交换发生时,说明序列已经处于完全有序状态,此时可提前结束排序操作(此优化未体现在上述代码中)[^4]。
### 时间复杂度与适用场景
该版本的时间复杂度为 \(O(n^2)\),其中 \(n\) 是输入数组长度。尽管如此,由于其实现简单直观,因此仍然适合用于教学目的以及小型数据集上的实践练习[^3]。
阅读全文
相关推荐

















