快速排序

    public static void main(String[] args) {
        int[] array1=new int[]{2,3,4,1,5,2,6,4,7,8};
        fastSort(array1, 0, array1.length-1);
        for(int k:array1){
            System.out.print(k);
        }

    }

    public static void fastSort(int[] array1,int left,int right){
        if(left>=right){
            return;
        }
        int left_o=left;
        int right_o=right;
        int k=array1[left];  //对比值
        boolean toright=false;  //一开始向左
        while(left<right){
            if(toright==false){  //向左
                if(array1[right]>k){
                    right--;
                } else{
                    array1[left]=array1[right];
                    left++;
                    toright=true;
                }
            } else{             //向右
                if(array1[left]<k){
                    left++;
                } else{
                    array1[right]=array1[left];
                    right--;
                    toright=false;
                }
            }
        }
        array1[left]=k;
        fastSort(array1,left_o,left-1);
        fastSort(array1,left+1,right_o);
    }

posted @ 2022-08-24 10:34  无极是一种信仰  阅读(26)  评论(0)    收藏  举报