上代码
#include<iostream>
#include<algorithm>
using namespace std;
int a[123456],c[200007];
void hbsort(int l1,int r1,int l2,int r2){
int i=l1,j=l2,k=l1;
while(i<=r1&&j<=r2){
if(a[i]<a[j]){
c[k++]=a[i++];
}
else{
c[k++]=a[j++];
}
}
while(i<=r1){
c[k++]=a[i++];
}
while(j<=r2){
c[k++]=a[j++];
}
for(int i=l1;i<=r2;i++){
a[i]=c[i];
}
}
void gbsort(int l,int r){
if(l==r) return ;
int mid=(l+r)/2;
gbsort(l,mid);
gbsort(mid+1,r);
hbsort(l,mid,mid+1,r);
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
gbsort(1,n);
for(int i=1;i<=n;i++){
cout<<c[i]<<" ";
}
return 0;
}
为什莫能用sort却用归并?????????