常见排序算法之希尔排序
来源:互联网 发布:端口号范围作用 编辑:程序博客网 时间:2024/05/16 17:58
希尔排序实质上是一种插入排序,也称为缩小增量排序,是直接插入排序的一种改进算法.
2.希尔排序
算法思想:
基于直接插入排序思想,直接插入排序的增量是1,也就是说比较大小时只能和当前元素的下一个元素比较,希尔排序的增量d是由大到小依次递减,在进行插入比较时,当前元素需要和相隔d个距离的元素进行比较.
假定待排序数组
(1)先选取一个增量
(2)然后选取
(注意:希尔排序最后一次增量必须是1)
示例图
程序演示
/** * @param array * 希尔排序 */ public static void shellSort(int[] array) { for(int gap=array.length/2;gap>0;gap/=2){ //内部使用的是插入排序 for(int i=gap;i<array.length;i++){ int temp =array[i]; int j; for(j=i;j>=gap&&array[j-gap]>temp;j-=gap){ array[j]=array[j-gap]; } array[j]=temp; } } }
算法性能分析
希尔排序的时间复杂度依赖于增量序列的选择,理论分析比较复杂.有实验结果表明,当n较大时,时间复杂度大约在O(n1.25)到O(n1.36)之间.
阅读全文
0 0
- 常见排序算法之希尔排序
- 常见排序算法之希尔排序
- 常见算法之希尔排序java实践
- 常见排序之---希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- Eclipse 安装插件(aptana、svn 、git、Java EE、JSHint)
- SpringMVC+MyBatis+C3P0配置出错(解决方案)
- HDU 1232 (畅通工程) 并查集经典模板题
- Mysql常用SQL语句集锦
- jdbc链接数据库名,获取表名、字段名和数据
- 常见排序算法之希尔排序
- 300+篇阿里技术热点解析及珍贵技术资料免费下载(文章+PDF+视频_持续更新)
- B
- HttpURLConnection上传文件(服务器)
- cgi fastcgi php-cgi php-fpm mod_php之间的理解
- JAVA中的反射
- android studio 使用Live Template添加自定义log
- java设置cookie
- springMVC配置定时任务