shell sort
原理:先取一个间隔,然后间隔慢慢减少,最后到1为止
不稳定,空间为1,时间为
for(gap=4;gap>0;gap/= 2)
{
for(int i =gap;i<len;i++)
{
for(j=i;i>gap-1;j-=gap)
{
if (a[j]<a[j-gap])
swap();
}
}
}
原理:先取一个间隔,然后间隔慢慢减少,最后到1为止
不稳定,空间为1,时间为
for(gap=4;gap>0;gap/= 2)
{
for(int i =gap;i<len;i++)
{
for(j=i;i>gap-1;j-=gap)
{
if (a[j]<a[j-gap])
swap();
}
}
}