d
2023-12-16 21:00:16
发布于:广东
36阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int N=100001;
int n,a[N],b[N];
void He_Bin(int lena,int idxa,int lenb,int idxb )
{
memset(b,0,sizeof(b));
int x=lena,y=lenb,k=0;
while(x<=idxa and y<=idxb)
{
if(a[x]<=a[y]) b[++k]=a[x++];
else b[++k]=a[y++];
}
while(x<=idxa) b[++k]=a[x++];
while(y<=idxb) b[++k]=a[y++];
for(int i=1;i<=k;i++) a[lena+i-1]=b[i];
return;
}
void Merge_Sort(int l,int r)
{
if(l<r)
{
int mid=(l+r)/2;
Merge_Sort(l,mid);
Merge_Sort(mid+1,r);
He_Bin(l,mid,mid+1,r);
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];
Merge_Sort(1,n);
return 0;
}
这里空空如也
有帮助,赞一个