题目描述
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-an-array
给你一个整数数组 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
思路
排序题目。。可以用很多种办法。这里用快速排序
代码
class Solution {
public:
void quickSort(vector<int>& nums, int l, int r){
if(l < r ){
int i = l, j = r, x = nums[l];
while(i < j){
while(i < j && nums[j] >= x)
j--;
if(i < j)
nums[i++] = nums[j];
while(i < j && nums[i] < x)
i++;
if(i < j)
nums[j--] = nums[i];
}
nums[i] = x;
quickSort(nums,l, i -1);
quickSort(nums,i + 1, r);
}
}
vector<int> sortArray(vector<int>& nums) {
quickSort(nums,0,nums.size() - 1);
return nums;
}
};