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

希尔排序

时间:2017-05-19 23:50:10      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:增量   images   typename   void   src   gap   end   back   复制   

使用希尔增量时排序的最坏为:O(n^2);

代码如下:

技术分享
 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 template <typename Comparable>
 5 void shellsort(vector<Comparable> & a)
 6 {
 7     for(int gap = a.size()/2; gap > 0; gap /= 2)
 8         for(int i = gap; i < a.size() ; i++)
 9         {
10             Comparable tmp = a[i];
11             int j = i;
12 
13             for( ; j>=gap && tmp<a[j-gap] ; j -= gap)
14                 a[j] = a[j-gap];
15             a[j]=tmp;
16         }
17 }
18 int main()
19 {
20     vector<int> ivec;
21     ivec.push_back(1);
22     ivec.push_back(9);
23     ivec.push_back(2);
24     ivec.push_back(10);
25     ivec.push_back(3);
26     ivec.push_back(11);
27     ivec.push_back(4);
28     ivec.push_back(12);
29     ivec.push_back(5);
30     ivec.push_back(13);
31     ivec.push_back(6);
32     ivec.push_back(14);
33     ivec.push_back(7);
34     ivec.push_back(15);
35     ivec.push_back(8);
36     ivec.push_back(16);
37     shellsort(ivec);
38     for(int i=0;i<ivec.size();i++)
39         cout<<ivec[i]<<endl;
40     return 0;
41 }
技术分享

运行结果为:

技术分享

希尔排序

标签:增量   images   typename   void   src   gap   end   back   复制   

原文地址:http://www.cnblogs.com/luozhijun/p/6880433.html

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