增量版插入排序
一张图看懂希尔算法:
代码如下:
void shellsort(int a[],int n)
{
int gap=n;
while(gap!=0)
{
gap/=2;
for(int i=0;i<gap;i++)
for(int j=i+gap;j<n;j+=gap)
if(a[j]<a[j-gap])
{
int temp=a[j];
for(int k=j-gap;k>=0&&a[k]>=temp;k=k-gap)
{
a[k+gap]=a[k];
}
a[k+gap]=temp;
}
}
}