void SellSort(SqList *L)
{
int i,j;
int increment=L->length;
do
{
increment=increment/3+1; /*定义的一种增量方式*/
for(i=increment+1;i<=L->length;i++)
{
if(L->r[i]>L->r[i-increment]) /*需要将L->r[i]插入有序增量子表*/
{ /*实际上是间隔为增量组成的序列进行直接插入排序*/
L->r[0]=L->r[i];
for(j=i-increment;L->r[0]<L->r[j] && j>0;j-=increment)
L->r[j+increment]=L->r[j];
L->r[j+increment]=L->r[0];
}
}
}while(increment>1);
}
实际上是结合增量进行直接插入排序,就不是间隔为1的直接插入排序