zoukankan      html  css  js  c++  java
  • 希尔排序

    算法:

    1、先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。

    2、所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序。

    3、取第二个增量d2<d1重复上述的分组和排序,

    4、直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。

    03.int main()  
    04.{  
    05.     const int n = 5;  
    06.     int i, j, temp;   
    07.     int gap = 0;  
    08.     int a[] = {5, 4, 3, 2, 1};   
    09.     while (gap<=n)  
    10.     {  
    11.          gap = gap * 3 + 1;  
    12.     }   
    13.     while (gap > 0)   
    14.     {  
    15.         for ( i = gap; i < n; i++ )  
    16.         {  
    17.             j = i - gap;  
    18.             temp = a[i];               
    19.             while (( j >= 0 ) && ( a[j] > temp ))  
    20.             {  
    21.                 a[j + gap] = a[j];  
    22.                 j = j - gap;  
    23.             }  
    24.             a[j + gap] = temp;  
    25.         }  
    26.         gap = ( gap - 1 ) / 3;  
    27.     }      
    28. }  
  • 相关阅读:
    Android——活动的基本用法
    开课第五周周总结
    java常用框架
    javaweb学习
    每日日报2021.3.23
    每日日报2021.3.22
    每日日报2021.3.21
    每日日报2021.3.19
    每日日报2021.3.18
    每日日报2021.3.17
  • 原文地址:https://www.cnblogs.com/yl-saber/p/6933446.html
Copyright © 2011-2022 走看看