Open Source, Open Future!
  menu
107 文章
ღゝ◡╹)ノ❤️

冒泡排序

思路

1、依次比较相邻元素的大小,若前一个比后一个大,则交换位置,最后的元素将会是最大值;
2、对剩下的元素重复以上步骤。

图示

image.png

代码

算法

    /**
     * 冒泡排序
     *
     * @param data
     */
    public static void bubbleOrder(int[] data) {
        for (int i = data.length - 1; i > 0; i--) {
            // 依次比较相邻元素的大小(尾部已经排好序的部分不需要再次比较)
            for (int j = 0; j < i; j++) {
                // 若前一个比后一个大,则交换位置
                if (data[j] > data[j + 1]) {
                    exchange(data, j, j + 1);
                }
            }
        }
    }

    private static void exchange(int[] data, int i, int j) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }

测试

    public static void main(String[] args) {
        int[] data = {5, 4, 3, 2, 1};
        bubbleOrder(data);
        System.out.println(Arrays.toString(data));
    }

结果

[1, 2, 3, 4, 5]