给你一个整数数组 nums
,请你将该数组升序排列。
输入:nums = [5,2,3,1]
输出:[1,2,3,5]
输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]
详细思路直接看我录制的视频吧 算法-快速排序_哔哩哔哩_bilibili
class Solution {// 快速排序public int[] sortArray(int[] nums) {if (nums == null || nums.length == 1) {return nums;}sort(nums, 0, nums.length - 1);return nums;}private void sort(int[] nums, int left, int right) {if (left >= right) {return;}int mid = findMid(nums, left, right);sort(nums, left, mid-1);sort(nums, mid + 1, right);}private int findMid(int[] nums, int left, int right) {int key = left;int value = nums[left];while (left < right) {while (left < right && nums[right] >= value) {right--;}while (left < right && nums[left] <= value) {left++;}swip(nums, left, right);}swip(nums, key, left);return left;}private void swip(int[] nums, int left, int right) {int temp = nums[left];nums[left] = nums[right];nums[right] = temp;}
}