冒泡排序优化

    /**     * 冒泡排序优化算法     *     * @param array     */    public static void bubbleSortFast(int[] array) {        int len = array.length;        for (int i = 0; i < len - 1; i++) {            boolean change = false;            for (int j = 0; j < len - i - 1; j++) {                if (array[j] > array[j + 1]) {                    int temp = array[j];                    array[j] = array[j + 1];                    array[j + 1] = temp;                    change = true;                }            }            if (!change) {                break;            }        }    }    /**     * 冒泡排序原始算法,未优化     *     * @param array     */    public static void bubbleSortSlow(int[] array) {        int len = array.length;        for (int i = 0; i < len - 1; i++) {            for (int j = 0; j < len - i - 1; j++) {                if (array[j] > array[j + 1]) {                    int temp = array[j];                    array[j] = array[j + 1];                    array[j + 1] = temp;                }            }        }    }

测试代码:

    int[] array = {-30, -40, -99, 27, 88, 66, 89, 99};

上面数组进行排序,调用传统算法需要遍历28次,调用优化后的算法只需要遍历18次

收藏 打印