题解
2023-08-30 18:08:00
发布于:江苏
0阅读
0回复
0点赞
#include<iostream>
using namespace std;
int a[1005];
int n;
void mergesort(int a[],int l,int r){
if(l==r) return;
int mid=(l+r)/2;
mergesort(a,l,mid);
mergesort(a,mid+1,r);
int i=l,j=mid+1,k=l;
int tmp[1005];
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;i<=r;i++) a[i]=tmp[i];
}
int main(){
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;
}
这里空空如也
有帮助,赞一个