void MergeSort(int arr[],int l,int r){
if(l==r) return;
int mid=l+((l-r+1)>>1);
MergeSort(arr,l,mid);
MergeSort(arr,mid+1,r);
int temp[l-r+1];
int p1=l,p2=mid+1,i;
while(p1<=mid&&p2<=r){
temp[i++]=arr[p1]<=arr[p2]?arr[p1++]:arr[p2++];
}
while(p1<=mid){
temp[i++]=arr[p1++];
}
while(p2<=r){
temp[i++]=arr[p2++];
}
for(int i=0;i<r-l+1;i++){
arr[i]=temp[i];
}
}
归并排序()
于 2023-10-30 16:05:20 首次发布