快递排序-JAVA实现


public static void sort(int[] arrs, int start, int end){
    int i = start;              //数组开始
    int j = end;                //数组结束
    int k = start;              //基值下标位置,一般取第一个值好了,运气值
    int mid = arrs[k];          //基值,小的左边,大的右边
    boolean flag = true;        //从小到大比较还是从大到小比较的标识,为true时从大到小比较,找到比基值小的
    while(i != j){
        if(flag){
            if(arrs[j] < mid){
                arrs[k] = arrs[j];
                arrs[j] = mid;
                k = j;
                flag = false;   //找到比基值小的,则将基值与当前值换位,接下去换方向找比基值大的
                System.out.println("mid["+mid+"]-start["+start+"]-end["+end+"]  "+Arrays.toString(arrs));
                continue;
            }
            j--;                //直接找到一个比基值小的
        } else {
 

你可能感兴趣的:(java)