希尔排序算法

来源:互联网 发布:无限网络 封优酷 编辑:程序博客网 时间:2024/06/05 03:55

希尔排序是第一批突破O[n*n]复杂度的算法之一,采用跳跃分割的策略,使待排序的记录基本有序。

void ShellSort(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[0]=L->r[i];                for(j=i-increment;j>0&&L->r[0]<L->r[j];j-=increment)                {                    L->r[j+increment]=L->r[j];                }                L->r[j+increment]=L->r[0];            }        }    }    while(increment>1);}
0 0
原创粉丝点击