Java快排

public static void QSort(int[] array, int left, int right) {
            //left数组的最小下标,right数组最大下标
            if (left > right) {                    //判断本次是否执行
                return;
            }
            int low = left;
            int high = right;
            int key=array[low];                    //将数组第一个数定为基准
            while(low<high){
                while(low<high && array[high]>key) //从后往前,直到找到小于基准的数
                    high--;
                array[low]=array[high];            //小数移动到前面
                while(low<high && array[low]<key)  //从前往后,直到找到大于基准的数
                    low++;
                array[high]=array[low];            //大数移动到后面
            }
            array[low]=key;                        //此时low在中间,将基准放入
            QSort(array,left,low-1);      //小数组递归
            QSort(array,low+1,right);      //大数组递归
        }

 

posted @ 2021-05-07 17:53  aaaadioppa  阅读(129)  评论(1)    收藏  举报
返回顶端