冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历待排序的数列,比较相邻的元素,如果它们的顺序错误就把它们交换过来。这个过程重复进行,直到没有需要交换的元素为止,表示排序完成。
下面是一个用 Java 实现的冒泡排序的示例代码:
public class BubbleSort {
public static void bubbleSort(int[] arr) {
int n = arr.length;
boolean swapped; // 用于标记是否发生过交换
// 外层循环控制排序的轮数
for (int i = 0; i < n - 1; i++) {
swapped = false; // 每次开始新一轮排序前,重置标记
// 内层循环进行相邻元素的比较和交换
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j + 1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true; // 发生了交换
}
}
// 如果没有发生交换,说明数组已经有序,可以提前结束
if (!swapped) {
break;
}
}
}
public static void main(String[] args) {
int[] arr = {64, 34, 25, 12, 22, 11, 90};
System.out.println("原始数组:");
printArray(arr);
bubbleSort(arr);
System.out.println("排序后的数组:");
printArray(arr);
}
// 辅助方法:打印数组
public static void printArray(int[] arr) {
for (int value : arr) {
System.out.print(value + " ");
}
System.out.println();
}
}
方法 bubbleSort
:
arr
作为参数。for
循环来实现排序。swapped
变量来判断在某一轮中是否发生了交换,如果没有交换,说明数组已经有序,可以提前结束排序。方法 printArray
:
冒泡排序是一种简单易懂的排序算法,适合用于小规模数据的排序。在实际应用中,由于其时间复杂度较高,通常不适合用于大规模数据的排序。对于大规模数据,建议使用更高效的排序算法,如快速排序、归并排序等。