直接使用快速排序的思路
Java里可以直接用sort函数,二路归并、堆排序也可以达到算法要求
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型vector 待排序的数组
* @return int整型vector
*/
vector<int> MySort(vector<int>& arr) {
quickSort(arr,0,arr.size()-1);
return arr;
}
//递归调用算法quickSort,逐步划分数组空间
void quickSort(vector<int>& arr,int left,int right){
if(left>=right){return;}
int tmp=partSort(arr,left,right);
quickSort(arr,left,tmp-1);
quickSort(arr,tmp+1,right);
}
//交换算法
int partSort(vector<int>&arr,int left,int right){
int divNum =arr[left];
int le=left;
for(int i=le+1;i<=right;i++){
if(arr[i]<=divNum){
le++;
swap(arr[i],arr[le]);
}
}
swap(arr[le],arr[left]);
return le;
}
};