<pre name="code" class="cpp">#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
int a[105],b[105],c[105],d[105];
bool ins()
{
int i,j;
bool flag=false;
for(i=1;i<n;i++)
{
for(j=i;j>0;j--)
{
if(c[j-1]>c[j])
swap(c[j-1],c[j]);
else break;
}
for(j=0;j<n;j++)
if(b[j]!=c[j])
break;
if(flag==true)
{
for(j=0;j<n;j++)
{
if(j) cout<<' ';
cout<<c[j];
}
cout<<endl;
return true;
}
if(j==n)
{
cout<<"Insertion Sort"<<endl;
flag=true;
}
}
return false;
}
void ms()
{
bool flag=false;
int j;
for(int i=2;i<=2*n;i*=2)
{
int s=0;
while(s<n)
{
if(s+i<=n)
sort(d+s,d+s+i);
else
sort(d+s,d+n);
s+=i;
}
for(j=0;j<n;j++)
if(b[j]!=d[j])
break;
if(flag==true)
{
for(j=0;j<n;j++)
{
if(j) cout<<' ';
cout<<d[j];
}
cout<<endl;
return ;
}
if(j==n)
{
cout<<"Merge Sort"<<endl;
flag=true;
}
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
d[i]=c[i]=a[i];
}
for(int i=0;i<n;i++)
cin>>b[i];
if(ins()==false)
ms();
return 0;
}
1089. Insert or Merge (25)
最新推荐文章于 2020-04-29 19:12:26 发布