题解 | #排序#
排序
https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 将给定数组排序
* @param arr int整型vector 待排序的数组
* @return int整型vector
*/
void mergesort(vector<int>& arr, vector<int>& temp, int s, int e){
if((e-s) <= 1) return;
int mid = (s+e)/2;
mergesort(temp, arr, s, mid);
mergesort(temp, arr, mid, e);
int i = s;
int j = mid;
int k = s;
while(i<mid | j<e){
if(i==mid) {temp[k++] = arr[j++]; continue;}
if(j==e) {temp[k++] = arr[i++]; continue;}
if(arr[i] > arr[j]) temp[k++] = arr[j++];
else temp[k++] = arr[i++];
}
return;
};
vector<int> MySort(vector<int>& arr) {
// write code here
vector<int> temp(arr.begin(), arr.end());
mergesort(arr, temp, 0, arr.size());
return temp;
}
};
基恩士成长空间 426人发布