# Java 冒泡排序实现 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。 ```java public class BubbleSort { 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]) { // 交换 arr[j] 和 arr[j+1] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; System.out.println("排序前数组:"); for (int num : arr) { System.out.print(num + " "); } bubbleSort(arr); System.out.println("\n排序后数组:"); for (int num : arr) { System.out.print(num + " "); } } } ``` ## 代码说明: 1. 外层循环控制排序的轮数,共需要n-1轮 2. 内层循环控制每轮的比较次数,随着轮数增加,比较次数减少 3. 每次比较相邻两个元素,如果顺序不对就交换它们 ## 优化建议: 1. 可以添加一个标志位,当某一轮没有发生交换时提前结束排序 2. 记录最后一次交换的位置,减少不必要的比较 3. 对于近乎有序的数组,优化后的冒泡排序效率会显著提高 ## 额外注意事项: - 冒泡排序的时间复杂度为O(n²),不适合大规模数据排序 - 冒泡排序是稳定的排序算法,相同元素的相对位置不会改变 - 在实际应用中,对于小规模数据或基本有序的数据,冒泡排序可能比其他复杂算法更高效 [2025-07-25 16:30:56 | AI写代码神器 | 489点数解答]