Java 快排算法 实现

static void mySort(int[] array, int lDatum, int rDatum) {
        if (lDatum < rDatum) {
            int lIndex = lDatum,rIndex = rDatum;
            boolean flag = true;//true时 left <- right,false 时left -> right
            while (lIndex < rIndex) {
                while (array[lIndex] < array[rIndex]) {
                    if (flag) {
                        rIndex--;
                    } else {
                        lIndex++;
                    }
                }
                if (array[lIndex] >= array[rIndex]) {

                    int middle = array[lIndex];
                    array[lIndex] = array[rIndex];
                    array[rIndex] = middle;

                    if (flag) {
                        lIndex++;
                        flag = false;
                    } else {
                        rIndex--;
                        flag = true;
                    }
                }
            }
            mySort(array, lDatum, lIndex - 1);
            mySort(array, lIndex + 1, rDatum);
        }
    }

借鉴了 MoreWindows 的 白话经典算法系列之六 快速排序 快速搞定

猜你喜欢

转载自blog.csdn.net/baidu_25830953/article/details/88574500
今日推荐