题解
2024-08-15 16:49:01
发布于:北京
19阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n;
const int N=1e5+100;
int a[N],c[N];
void MerSort(int l,int r){
if(l>=r)return;
int mid=(l+r)/2;
MerSort(l,mid);
MerSort(mid+1,r);
int l1=l,r1=mid,l2=mid+1,r2=r,cnt=l1;
while(l1<=r1&&l2<=r2){
if(a[l1]<=a[l2])c[cnt++]=a[l1++];
else c[cnt++]=a[l2++];
}
while(l1<=r1)c[cnt++]=a[l1++];
while(l2<=r2)c[cnt++]=a[l2++];
for(int i=l;i<=r;i++)a[i]=c[i];
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
cout<<endl;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
MerSort(1,n);
return 0;
}
全部评论 3
.
2024-08-15 来自 北京
0.
2024-08-15 来自 北京
0.
2024-08-15 来自 北京
0
有帮助,赞一个