希尔排序:是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。
代码如下:
#include<cstdio>
int n,num[10000];
void shell_sort()
{
int i,j,x,d;
d=n/2;
while(d)
{
for (i=d+1;i<=n;i++)
{
x=num[i];
j=i-d;
while(j&&x<num[j])
{
num[j+d]=num[j];
j-=d;
}
num[j+d]=x;
}
d/=2;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&num[i]);
shell_sort();
for(int i=1;i<=n;i++)
printf("%d ",num[i]);
}