希尔排序(上)

Posted 霍同学日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序(上)相关的知识,希望对你有一定的参考价值。

前文讲过了直接插入排序,现在基于“模块化”分析的思想,做一些优化,这大概就是希尔排序的基本概念了(shellsort)

 

把一个长的字符串拆分成几组,每组的长度即人为设定,然后每个小组内使用直接插入排序,最后得到的序列即基本有序。

 

不废话上代码:

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] < r[j];j-=increment)            L→r[j+increment] = L→r[j];        L→r[j+increment] = L→r[0];      }    }  }  while (incremeng>1) }

以上是关于希尔排序(上)的主要内容,如果未能解决你的问题,请参考以下文章

排序算法入门之希尔排序(java实现)

109,排序-希尔排序

插入排序和希尔排序的比较

直接插入折半插入希尔排序

直接插入折半插入希尔排序

希尔排序总结