希尔排序

使用希尔增量时排序的最坏为: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 }
复制代码

运行结果为:

posted @   xingoo  阅读(317)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示