void merge_sort(int a[],int l,int r){
if(l>=r)return;
int mid = (l+r)>>1;
merge_sort(a,l,mid);
merge_sort(a,mid+1,r);
int i = l,j = mid+1,k=0;
while(i<=mid&&j<=r)
if(a[i]<=a[j])tmp[k++]=a[i++];
else tmp[k++]=a[j++];
while(i<=mid)
tmp[k++]=a[i++];
while(j<=r)
tmp[k++]=a[j++];
for(i = l,j=0;i<=r;i++,j++)a[i] = tmp[j];
}
归并排序模板
最新推荐文章于 2024-01-21 00:05:41 发布