#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[30];
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int d=n/2;
while(d>=1)//保证取到所有间隔。
{
for(int i=1+d;i<=n;i++)
{
int j=i-d;
a[0]=a[i];
while(j>=1)//保证同一组的数进行彻底。
{
if(a[j+d]<a[j])
{
int t=a[j];
a[j]=a[j+d];
a[j+d]=t;
j=j-d;
}
else
{
break;
}
}
}
d=d/2;
}
for(int i=1;i<=n;i++)
{
cout<<a[i]<<endl;
}
return 0;
}
希尔算法性质:不稳定性。
shell算法
最新推荐文章于 2023-05-10 19:10:15 发布