给你一个整数数组 nums,将该数组升序排列。
示例 :
输入:nums = [5,2,3,1]
输出:[1,2,3,5]
各类排序算法
O(nlogn)
O(1)
class Solution {
public:
vector<int> sortArray(vector<int>& nums) {
int n = nums.size();
quicksort(nums, 0, n-1);
return nums;
}
void quicksort(vector<int> &nums, int low, int high)
{
if (low>=high) return;
int l=low, r=high, pivot = nums[l];
while(l<r)
{
while(l<r && nums[r] >= pivot)
{
r--;
}
nums[l] = nums[r];
while(l<r && nums[l] < pivot)
{
l++;
}
nums[r] = nums[l];
}
nums[l] = pivot;
quicksort(nums, low,l-1);
quicksort(nums, l+1, high);
}
};