int a[1000000],n,i,j,k,mid;
int tmp[1000000];
void merge(int arr[],int begin,int mid,int end){
i=begin,j=mid,k=0;
for(;i<mid&&j<end;tmp[k++]=(arr[i]<arr[j]?arr[i++]:arr[j++]));
for(;i<mid;tmp[k++]=arr[i++]);
for(;j<end;tmp[k++]=arr[j++]);
for(i=begin,k=0;i<end;arr[i++]=tmp[k++]);
}
void sort(int arr[],int begin,int end){
if(end-begin<2)return;
mid=(begin+end)>>1;
sort(arr,begin,mid);
sort(arr,mid,end);
merge(arr,begin,mid,end);
}
void sort(unsigned *a, int n) {
sort(a,0,n);
}
| Compilation | N/A | N/A | Compile Error | Score: N/A | 显示更多 |