Java基础—方法—15递归、冒泡排序(算法思想)

  • 总共八大排序必须掌握:
1、冒泡排序

冒泡的代码非常简单:

两层循环,外层冒泡轮数,里层依次比较。 

整体思路是,比较数组中,相邻两个元素的大小;每一次比较都产生一个最大(最小)的数;下一轮可减少一次排序;一次循环,直到结束。

复杂度为O(n²)

public class Demo02 {
    public static void main(String[] args) {
        // 冒泡排序
        int[] a = {100, 1, 9, 6, 100, 8, 10, 90, 60, 100, 40, 50};
        sort(a);
        System.out.println(Arrays.toString(a));
    }
    public static void sort(int[] array) {
        // 冒泡排序
        for (int i = 0; i < array.length - 1; i++) {
            // flag位设置的意义是:如果数组有序则无需循环比较了,直接退出循环
            boolean flag = false;
            for (int j = 0; j < array.length - i - 1; j++) {
                if (array[j] < array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    flag = true;
                }
            }
            if(!flag) break;
        }
    }
}
  • 递归思想待后续更新

你可能感兴趣的:(JavaSE,java,开发语言,算法,学习)