void mergeSort(vector<int>& arr, int low, int high){
if(low >= high)
return;
int mid = (low + high) / 2;
mergeSort(arr, low, mid);
mergeSort(arr, mid + 1, high);
vector<int>vec(arr.size());
int s = 0;
int i = low;
int j = mid + 1;
while(i <= mid && j <= high){
if(arr[i] < arr[j]){
vec[s++] = arr[i++];
}
else{
vec[s++] = arr[j++];
}
}
while(i <= mid){
vec[s++] = arr[i++];
}
while(j <= high){
vec[s++] = arr[j++];
}
s = 0;
for(int i = low; i <= high; i++){
arr[i] = vec[s++];
}
}
归并排序c++实现
最新推荐文章于 2023-06-24 11:11:20 发布