码迷,mamicode.com
首页 > 编程语言 > 详细

希尔排序

时间:2017-10-28 12:57:33      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:第一个   strong   代码   希尔   最好   blog   int   希尔排序   void   

核心代码

 1 void ShellSort(int arr[], int len)
 2 {
 3     int j;
 4     int k;
 5     int nGap;
 6     int temp;
 7 
 8     assert(arr!=NULL && len>0);
 9 
10     //定步长
11     for(nGap=len/2; nGap>0; nGap/=2)
12     {
13         //根据步长进行分组
14         //各组内进行插入排序
15         for(j=nGap; j<len; ++j)
16         {
17             //有序数组的最后一个
18             k = j-nGap;
19             //无序数组的第一个
20             temp = arr[j];
21 
22             while(temp<arr[k] && k >= 0)
23             {
24                 arr[k+nGap] = arr[k];
25                 k -= nGap;
26             }
27 
28             arr[k+nGap] = temp;
29         }
30     }
31 }

 算法分析:

  最好时间复杂度:O(n)    有序

  平均时间复杂度:O(n^1.3)

  最坏时间复杂度:O(n^2)

    空间复杂度:O(1)

      稳定性:不稳定

希尔排序

标签:第一个   strong   代码   希尔   最好   blog   int   希尔排序   void   

原文地址:http://www.cnblogs.com/chen-cai/p/7746377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!