02_程序员必须掌握的8大排序算法_希尔排序
来源:互联网 发布:黎明杀机n卡优化 编辑:程序博客网 时间:2024/06/06 12:31
希尔排序(最小增量排序)
基本思想
算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
实例
用Java实现
publicclass shellSort { publicshellSort(){ int a[]={1,54,6,3,78,34,12,45,56,100}; double d1=a.length; int temp=0; while(true){ d1= Math.ceil(d1/2); int d=(int) d1; for(int x=0;x<d;x++){ for(int i=x+d;i<a.length;i+=d){ int j=i-d; temp=a[i]; for(;j>=0&&temp<a[j];j-=d){ a[j+d]=a[j]; } a[j+d]=temp; } } if(d==1) break; } for(int i=0;i<a.length;i++) System.out.println(a[i]); } }
阅读全文
0 0
- 02_程序员必须掌握的8大排序算法_希尔排序
- 01_程序员必须掌握的8大排序算法_直接插入排序
- 03_程序员必须掌握的8大排序算法_简单选择排序
- 04_程序员必须掌握的8大排序算法_堆排序
- 05_程序员必须掌握的8大排序算法_冒泡排序
- 06_程序员必须掌握的8大排序算法_快速排序
- 07_程序员必须掌握的8大排序算法_并归排序
- 08_程序员必须掌握的8大排序算法_基数排序
- 程序员必须掌握的8大排序算法(二):希尔排序
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- 进程间通信--共享内存
- python协程:yield的使用
- 关于二叉搜索树的一些操作
- java 开发环境搭建
- 网络编程InetAddress类的使用
- 02_程序员必须掌握的8大排序算法_希尔排序
- oracle 动态执行命令execute immediate
- React Native Android 虚拟机运行
- CS:APP二进制炸弹phase1
- 如何选择深度学习优化器
- 前端解决跨域问题的8种方案(最新最全)
- java四种引用
- 03_程序员必须掌握的8大排序算法_简单选择排序
- 安卓service后台下载安装升级包