LeetCode_排序數組_Array_M

912. 排序數組

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

    // 快排
    private void quickSort(int[] arr, int l, int r) {
        if (l < r) {
            int i = l, j = r, x = arr[i];		// 挖坑,用x存原坑的值
            while (i < j) {
                while (i < j && arr[j] >= x) {		// 從右到左,找一個比x小的填坑
                    j--;
                }
                if (i < j) {
					arr[i++] = arr[j];
                }
                while (i < j && arr[i] < x) {		// 從左到右,找一個比x大的填坑
					i++;
                }
                if (i < j) {
					arr[j--] = arr[i];
                }
            }
            arr[i] = x;		//把最後一個坑填上
            quickSort(arr, l, i - 1);
            quickSort(arr, i + 1, r);
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章