LeetCode 912. 排序数组【模板题】

912. 排序数组

LeetCode 912. 排序数组【模板题】_第1张图片 

【快排】

class Solution {
    
    // 快速排序 7:32 13

    void quickSort(int[] nums, int l, int r){
        if(l >= r) return;
        int i = l, j = r, pivot = nums[l + r >>> 1];
        while(i <= j){
            while(nums[j] > pivot) j--;
            while(nums[i] < pivot) i++;
            if(i <= j){
                int t = nums[i];
                nums[i] = nums[j];
                nums[j] = t;
                j--; i++;
            }
        }
        quickSort(nums, l, j);
        quickSort(nums, i, r);
    }

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

【快排2】

class Solution {

    // 7:52 3

    void quickSort(int[] arr, int l, int r){
        if(l >= r) return;
        int i = l, j = r, pivot = arr[l];
        while(i < j){
            while(i < j && arr[j] > pivot) j--;
            arr[i] = arr[j];
            while(i < j && arr[i] <= pivot) i++;
            arr[j] = arr[i];
        }
        arr[i] = pivot;
        quickSort(arr, l, i - 1);
        quickSort(arr, i + 1, r);
    }

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

 

 

你可能感兴趣的:(LeetCode)