题解 | #排序#
排序
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; } };