数据结构与算法之冒泡排序优化

冒泡排序优化

    /**
     * 冒泡排序优化算法
     *
     * @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次

上一篇:Linux下利用ioctl函数获取网卡信息


下一篇:MySQL资料大全