AcWing 787. 归并排序
原题链接
简单
作者:
SM2X_We1l
,
2025-06-09 21:40:59
· 辽宁
,
所有人可见
,
阅读 1
include[HTML_REMOVED]
using namespace std;
int n;
const int N = 1e5+10;
int a[N];
int tmp[N];
void mergesort(int a[],int l,int r)
{
if(l>=r)return;
int mid = l+r>>1;
mergesort(a,l,mid);
mergesort(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(int i=l,j = 0;i<=r;i++,j++)
{
a[i] = tmp[j];
}
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
mergesort(a,1,n);
for(int i=1;i<=n;i++)
{
cout<<a[i]<<' ';
}
return 0;
}