希尔排序
来源:互联网 发布:算法工程师专业 编辑:程序博客网 时间:2024/06/05 02:05
写得比较简短些,希尔排序就是直接插入排序的强化升级,一般来说,直接排序如果是逆序的数组,那么要后面每个数移动的次数会有很多,那么如果分成3组分别来对比,就意味着10个数的数组只需要比较3次,移动也是最多3次,这样大大增加了算法效率。
代码如下:
#include <cstdio>int main(){ int i[11]= {0,10,9,8,7,6,5,4,3,2,1}; int t,b,a,num; t=10; do { t=t/3+1; for(a = t+1; a <= 10; a ++) { if(i[a]<i[a-t]) { num=i[a]; for(b = a-t; b >0&&i[b]>num; b-=t) i[b+t]=i[b]; i[b+t]=num; } } } while(t>1); for( a = 1; a <= 10; a ++) printf("%d ",i[a]); return 0;}
分析:
希尔排序 的时间复杂度为O(n^3/2);
阅读全文
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 面试题61. 按之字形顺序打印二叉树
- xml快速入门(tinyxml解析)
- 欢迎使用CSDN-markdown编辑器
- 性能测试工具ab使用记录
- 【软考】--操作系统导图
- 希尔排序
- bzoj1042 [HAOI2008]硬币购物
- git命令-切换分支
- bzoj1089 [SCOI2003]严格n元树
- poj 2478 (欧拉函数)
- CentOS 7安装MySQL5.7
- I2C
- MVP在Android中2种实现(2)
- 用ajax 删除用户异步刷新