七大排序之冒泡排序 超详解 java版

七大排序之冒泡排序 思路及代码详解 java版

关于七大排序中,堆排序是我个人认为最好理解的一种排序算法。
给定一个无序的数组,如果是求一个升序的数组, 将相邻的两个元素值互相比较,如果前一个值大于后面元素的值,用swap方法将其值交换,先比较第一个和第二个元素,处理完成后,比较第二个和第三个,在比较第三个和第四个,依次比较直到数组末尾, 每当数组冒泡遍历一遍,就可以将数组中的最大值放在数组的最后一个,下一次遍历的时候就可以不用再去遍历最后一个元素,这也算是冒泡的一点小优化点。

下面附上冒泡排序的java代码:

    /**
     * 冒泡排序 时间复杂度:n^2
     *
     * @param arr
     */
    public static void bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            boolean isSorted = true;
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    swap(arr, j, j + 1);
                    isSorted = false;
                }
            }
            if (isSorted) {
                break;
            }
        }
    }

如果阅读过程中有任何问题,欢迎提问和指出!

你可能感兴趣的:(数据结构,排序算法,java)