排序 -C
题目描述 : ------------------------------------------------------------
给定一个数组,请你编写一个函数,返回该数组排序后的形式。
输入样例1 : ------------------------------------------------------------
[5,2,3,1,4]
返回值1 : ------------------------------------------------------------
[1,2,3,4,5]
返回最小的4个数即可,返回[1,3,2,4]也可以
输入样例2 : ------------------------------------------------------------
[5,1,6,2,5]
返回值2 : ------------------------------------------------------------
[1,2,5,5,6]
数组的长度不大于100000,数组中每个数的绝对值不超过 1 0 9 10^{9} 109
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型vector 待排序的数组
* @return int整型vector
*/
void quickSort(vector<int>& arr, int left, int right) {
if(left >= right)
return;
int midVal = arr[right];
int lastPos = left;
for(int cur = left; cur <= right - 1; cur++)
if(arr[cur] <= midVal)
swap(arr[lastPos++], arr[cur]);
swap(arr[lastPos], arr[right]);
quickSort(arr, left, lastPos - 1);
quickSort(arr, lastPos + 1, right);
}
vector<int> MySort(vector<int>& arr) {
if(arr.size() <= 1)
return arr;
quickSort(arr, 0, arr.size() - 1);
return arr;
}
};