希尔排序-nlogn
2016-03-15 19:37
218 查看
void sheelSort(int A[], int number) { for(int gap = number/2; gap >=1; gap/=2) // gap从number/2开始,每次排序后gap减半,直到为1 { for(int i = gap; i < number; ++i) //从第gap个点开始此轮排序 { /*取要比较的A[i], 与之前的第gap个元素比较,大于那个就表示是正序,退出循环,小于那个就将那个的值放在A[i], 再向前gap个取值直到退出循环,将原A[i]的值放在推出的那个点上,完成此点的排序*/ int j = 0; int temp = A[i]; for(j = i-gap; j>=0 && temp < A[j]; j-=gap) { A[j+gap] = A[j]; } A[j+gap] = temp; } } }
希尔排序的步长选择对时间复杂度有影响。
平均事件复杂度为nlogn
最坏时间复杂度为n^1.5
相关文章推荐
- 十步完全理解SQL(转)
- cocos2dx 自己主动加入cpp文件到android.mk
- 建造者模式(Builder Pattern)
- 注册Github
- codeforces 637B B. Chat Order(map,水题)
- 并发(Concurrent)与并行(Parallel)
- socket连接和http连接的区别
- bzoj 1257: [CQOI2007]余数之和sum 【数学 分块统计】
- 安卓实现定位功能的4种方式
- bzoj 1041: [HAOI2008]圆上的整点 【数学 思维】
- Alec jacobson thesis analysis
- android——.9图片
- 求最大公因子-欧几里德算法
- 对分查找-logN
- 第一次写博客,想了很久要给自己留一个什么样的开始
- 文档大师 2016 :在电脑和头脑中快速找到文档的文件管理软件
- 使用POST方式弹出窗口的两种办法
- bzoj 2190: [SDOI2008]仪仗队 【容斥】
- 快速排序(分治法O(nlogn))
- 通用JSON生成器3