希尔排序
来源:互联网 发布:独立网络经纪人登录 编辑:程序博客网 时间:2024/06/03 11:27
觉得好玩就学了一下,话说复杂度o(n^1.25);
优化的插排,G[]储存1,4,13,40,121……;
就是从大往小跳着插,每次跳G[i];
因为G[]最后取1,所以一定保证有序;
希尔排序就是优化了寻找过程的插入排序
但注意如果遇到2的幂指数(1,2,4,8……)等g=1前几乎不需要排序的数列,效率会大打折扣;
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n,G[101],a[101],tot;void qu(){ int h=0; for(;;) { if(h>n) break; G[++tot]=h=h*3+1; }}void shell_sort(int g){ for(int i=g+1;i<=n;i++) { int v=a[i]; int j=i-g; while(j>=0 && a[j]>v) { a[j+g]=a[j]; j-=g; } a[j+g]=v; } return;}void solve(){ cin>>n; qu(); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=tot;i>=1;i--) shell_sort(G[i]); for(int i=1;i<=n;i++) cout<<a[i]<<" "; return;}int main(){ solve(); return 0;}
阅读全文
1 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- [观点]
- MYSQL复制原理及其流程
- Java mail 发送邮件
- 数位dp 求l-r(10进制) 在k进制中有多少个回文数的模板
- solr第一天入门
- 希尔排序
- Guitar Pro中文版下载,你想要的,都在这啦
- 如何在fedora26安装chromium安装flash
- Hibernate框架深入
- 【[Offer收割]编程练习赛23 D】【最小生成树+set的启发式合并】观光旅行
- 【玉蟾宫】codevs 2491
- 冒泡排序
- codeforces548E Mike and Foam -- 容斥
- SPLAY树