希尔排序(java)
来源:互联网 发布:淘宝卖假货美妆店铺 编辑:程序博客网 时间:2024/05/22 00:34
希尔排序是插入排序的改良版,但是比较难理解,他是把大的排序分解成越来越小范围的排序,最终最小的时候,完成整个排序。
举个小栗子:2 4 1 3 5 降序来排,具体请看代码
1.拿1和2比较,显然1<2 所以不交换
2.都后移一位 3和4比较 3<4 不交换
3.接着后移一位,5和1比较,5>1 交换,变成
2 4 5 3 1
只要交换了,继续比较,拿5和2比较,5>2 交换 变成
5 4 2 3 1
细心的朋友都看出来,要比较的两个数中间都空开一个,具体空几个要看第一次的时候和第一数比较的时候空几个。
4.然后长度再除以2,变为1,那就从脚标为1和第一个数比较,和上面一样,这里就不重复了...
5.最后长度除以2<0时就结束了 。
后面链接是一个希尔排序的舞蹈,可以更好地理解希尔排序。
public class example02 {public static void main(String[] args) {// TODO Auto-generated method stubint[] a ={1,2,3,4,5,6};for(int i=a.length/2;i>0;i/=2)//确定从哪开始{for(int j=i;j<a.length;j++)//实际控制的角标{int temp=a[j];//复制一份,比较和赋值时用,而又不改变原来的数据int k=0;for(k=j;k>=i;k-=i)//核心{if(temp>a[k-i])a[k]=a[k-i];elsebreak;}a[k]=temp;}}for(int i:a)System.out.print(i+" ");}}
1 0
- (Java)希尔排序
- 希尔排序(java)
- Java排序--》希尔排序(增量排序)
- 希尔排序(java实现)
- 希尔排序(Java实现)
- 希尔排序(JAVA版)
- 希尔排序实现(Java)
- 希尔排序(java实现)
- 希尔排序(JAVA实现)
- 希尔排序(java实现)
- Java 希尔排序(缩小增量排序)
- 排序算法--希尔排序(JAVA)
- 希尔排序:Java(最小增量排序)
- Java排序算法--希尔排序(Shellsort)
- java排序-希尔排序
- Java 详解希尔(Shell)排序
- Java 详解希尔(Shell)排序
- 希尔(Shell)排序 Java实现
- bitlocker密码忘记
- maven的安装与maven本地仓库的搭建过程
- PowerDesigner15连接Oracle数据库并导出Oracle的表结构步骤
- 【基础】嵌入式浏览器移植基本要素
- 软件安装_apt-get
- 希尔排序(java)
- jar 包的创建
- 24 服务信使
- Gleasy首席架构师薛珂:以开源为基础实现分布式框架及中间件
- crontab不运行问题
- 第十天
- {}和null的区别
- vmware安装mac os
- (转)将 \packages\apps 下的 android 源码导入Eclipse编译的方法