Java 冒泡排序:3 步记忆口诀

87 阅读1分钟

以下是Java实现冒泡排序的代码,添加了便于快速记忆的注释和口诀:

代码实现(带注释)

public class BubbleSort {
    public void sort(int[] arr) {
        if (arr == null || arr.length <= 1) return;
        
        int n = arr.length;
        boolean swapped; // 标记是否发生交换
        
        // 外层循环控制排序轮数(n-1轮)
        for (int i = 0; i < n - 1; i++) {
            swapped = false;
            
            // 内层循环比较相邻元素,将较大值往后交换
            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;
                    swapped = true; // 标记发生了交换
                }
            }
            
            // 如果没有发生交换,说明数组已经有序,提前结束
            if (!swapped) break;
        }
    }
}

记忆口诀

冒泡排序要记牢,外层循环走n-1
内层循环比相邻,大值往后交换忙
每轮确定一个数,标记优化效率高

关键点记忆

  1. 核心思想:比较相邻元素,将较大值不断“冒泡”到右侧
  2. 循环控制
    • 外层循环:控制排序轮数(共 n-1 轮)
    • 内层循环:每轮比较次数递减(n-i-1 次)
  3. 优化点
    • 使用 swapped 标记,若某轮未发生交换,说明数组已有序,提前结束