#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int sz = 2000100;
int n;
int num[sz],tmp[sz];
void merge_sort(int l,int r)
{
if(l==r) return;
int mid=l+r>>1;
merge_sort(l,mid),merge_sort(mid+1,r);
int p=l,pl=l,pr=mid+1;
while(pl<=mid||pr<=r)
{
if(pr>r|| (pl<=mid&&num[pl]<=num[pr]) )
tmp[p++]=num[pl++];
else
tmp[p++]=num[pr++];
}
for(int i=l;i<=r;++i)
num[i]=tmp[i];
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
cin>>num[i];
merge_sort(1,n);
for(int i=1;i<=n;++i)
printf("%d ",num[i]);
return 0;
}
【模板】快速排序
最新推荐文章于 2022-03-05 01:35:28 发布