个人的java快排实现

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 (lIndex != 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 的 白话经典算法系列之六 快速排序 快速搞定

你可能感兴趣的:(java,算法)