快速排序

快速排序

class Solution {
    public int[] sortArray(int[] nums) {
        if(nums==null || nums.length==0) return nums;
        quickSort(nums, 0, nums.length-1);
        return nums;
    }
    
    private void quickSort(int[] nums, int start, int end) {
        if(start>=end) {
            return;
        }
        int mid=nums[(start+end)/2], left=start, right=end; 
        while (left<=right)
        {
            while (left<=right && nums[left]<mid) {
                left++;
            }
            while (left<=right && nums[right]>mid) {
                right--;
            }
            if(left<=right) {
                int temp=nums[left];
                nums[left]=nums[right];
                nums[right]=temp;
                left++; right--;
            }
        }
        quickSort(nums, start, right);
        quickSort(nums, left, end);
    }
}
上一篇:【每日一题见微知著】第 279 场周赛题——周赛还是有意思啊


下一篇:解题技巧之数组与字符串(一)