void MergeSort(vector<int> &data, vector<int> ©, int start, int end){
if(start>=end){
copy[start] = data[start];
return;
}
int mid = (start+end)/2;
int i=mid,j=end,k=end;
MergeSort(copy,data,start,mid);
MergeSort(copy,data,mid+1,end);
while(i>=start&&j>mid){
if(data[i]>data[j]){
copy[k--] = data[i--];
}else{
copy[k--] = data[j--];
}
}
for(;i>=start;i--){
copy[k--] = data[i--];
}
for(;j>mid;j--){
copy[k--] = data[j--];
}
}
归并排序
最新推荐文章于 2024-04-28 12:18:26 发布