内部排序算法之希尔排序
来源:互联网 发布:免费自动发卡平台源码 编辑:程序博客网 时间:2024/05/22 09:43
希尔排序是在简单插入排序上做了改进。待排序系列长度记为N,增量d一般取从N/2, N/4, N/8...到1的序列。希尔增量的选取决定了排序的效率。将待排序系列中,元素下标间距为d的所有元素分为一组, 对每组进行简单插入排序。当d减少到等于1使,最后做一次简单插入排序。
如果对简单插入排序很熟悉,实现希尔排序难度不大
int shell_sort(int *p, int n){int d, i, j, k;for(d=n/2; d>0; d/=2){for(i=d; i<n; i+=d){k = p[i];j=i-d;while(j>=0 && p[j]>k){p[j+d] = p[j];j-=d;}p[j+d] = k;}}}希尔排序的效率优于O(n^2)的算法,差于O(n*lgn)的算法。最差情况和最好情况效率相差不大。中小型规模可以先用该排序算法。
0 0
- 内部排序算法之希尔排序
- 内部排序算法:希尔排序
- 常用内部排序算法之五:希尔排序
- 内部排序之插入排序、希尔排序
- 内部排序之插入排序,希尔排序
- 内部排序之插入排序、希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- xcode 使用zbarsdk
- CruiseControl.NET持续集成实践
- 批量校验android apk包的渠道号 工具
- JAVA学习笔记--this的用法
- 十六周——判断两个有序数组中是否存在相同的数字
- 内部排序算法之希尔排序
- 想法
- const char*, char const*, char*const的区别
- 归并排序算法
- The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the argum
- 如何看懂源代码--(分析源代码方法)
- html基础一
- C# 通过反射获取/设置属性值
- Linux网络接口配置文件ifcfg-eth0解析