希尔排序

 1 /**
 2  * 排序算法之希尔排序
 3  */
 4  #include <iostream>
 5  #include <vector>
 6  using namespace std;
 7 
 8  void sortXiEr(vector<int>& vec, int len) {
 9     int i, j;
10     int increment = len;
11     while (increment > 1) {
12         increment = increment / 3 + 1;
13         for (i = increment; i < len; ++i) {
14             int key = vec[i];
15             j = i;
16             while (j >= increment && key < vec[j - increment]) {
17                 vec[j] = vec[j - increment];
18                 j -= increment;
19             }
20             vec[j] = key;
21         }
22     }
23  }
24 
25  int main() {
26     vector<int> vec = {2,1,3,5,4};
27     int len = vec.size();
28     sortXiEr(vec, len);
29     for (int i = 0; i < len; ++i) {
30         cout << vec[i] << endl;
31     }
32     return 0;
33  }

 

posted on 2018-03-07 10:29  狗剩的美丽家园  阅读(139)  评论(0编辑  收藏  举报

导航