经典希尔排序精编.pptVIP

  • 108
  • 0
  • 约2.94千字
  • 约 13页
  • 2017-06-08 发布于湖北
  • 举报
希尔排序 网工1班 刘孝朋 希尔排序是对直接插入排序算法的改进, 其主要思想是:先将整个排序数列分割成为若干个子序列,在子序列分别进行直接插入排序,待整个数列基本有序时再对全部进行一次直接插入排序。以此来形成新的有序数列。一般分割方法是两个元素相距d=n/2,n/4,n/8……以此类推 直接排序 直接插入排序的基本思想:把待排序数列分成有序区和无序区,初始时有序区为待排序数列的第一个元素,其余部分作为待排序元素。然后,讲待排序元素一次一个地加入有序区,直到结束。这样来形成新的有序数列。 代码和一个实例如下。 void InsertSort(int r[], int n) ? ? for (inti=2; ilt;n; i++) ? ?? ? ?r[0]=r;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//设置哨兵 ? ??for (j=i-1; r[0]lt;r[j]; j--)? ?? ?? ?? ?//寻找插入位置 ? ?? ?? r[j+1]=r[j];? ?? ?? ?? ?? ?? ?? ?//记录后移 ? ?? ? r[j+1]=r[0];? ?? ?? ?? ?? ? 初始值? ?? ???12 15 9 20 6 31 24 第一趟排序结果 12 15 9 20 6 31 24 第二趟排序结果 9 12 15 20 6 31 24 第

文档评论(0)

1亿VIP精品文档

相关文档