【每日一题】【快速排序】2021年11月16日-912. 排序数组

 

 升序排列

class Solution {
    public int[] sortArray(int[] nums) {
        quickSort(0, nums.length - 1, nums);
        return nums;
    }

    public void quickSort(int low, int high, int[] nums) {
        if(low >= high) { // 防止溢出
            return;
        }
        int pivot = nums[low]; //枢纽为一个数
        int i = low, j = high;
        while(i < j) {
            while(i < j && nums[j] > pivot) {
                j--;
            }
            if(i < j) {
                nums[i++] = nums[j]; 
            }
            while(i < j && nums[i] < pivot) {
                i++;
            }
            if(i < j) {
                nums[j--] = nums[i];
            } 
        }
        nums[i] = pivot;
        quickSort(low, i - 1, nums);
        quickSort(i + 1, high, nums);
    }
}

 

posted @ 2021-11-16 22:07  哥们要飞  阅读(24)  评论(0编辑  收藏  举报