题目
给你一个整数数组 nums,请你将该数组升序排列。
示例 1:
输入:nums = [5,2,3,1]
输出:[1,2,3,5]
示例 2:
输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]
提示:
1 <= nums.length <= 50000
-50000 <= nums[i] <= 50000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
快速排序
class Solution {
public void quick_sort(int[] arr,int l,int r){
if(l>=r) return;
int x=arr[(l+r)/2],i=l-1,j=r+1;
while(i<j){
do i++;while(arr[i]<x);
do j--;while(arr[j]>x);
if(i<j){
int t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
quick_sort(arr,l,j);
quick_sort(arr,j+1,r);
}
public int[] sortArray(int[] nums) {
if(nums.length<2) return nums;
quick_sort(nums,0,nums.length-1);
return nums;
}
}