算法笔记2-排序-希尔排序(最小增量排序)
2018-01-17 15:57
295 查看
基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
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]); } }
相关文章推荐
- Java八大排序算法之"希尔排序(最小增量排序)"算法
- 一点一点的积累算法JAVA版之希尔排序(最小增量排序)
- 数据结构----希尔排序(最小增量排序)
- 回首Java——希尔排序(最小增量排序)
- 八大排序--- 希尔排序(最小增量排序)
- 排序算法(二):希尔排序(最小增量排序)
- 插入排序) 希尔排序 (最小增量排序)
- 算法【4】:希尔排序(缩小增量排序)
- 插入排序的改进算法-希尔排序
- “用最小堆将k个已排序链表合并为一个排序链表”(算法导论 练习6.5-9)
- 算法系列(二)冒泡排序、选择排序、插入排序和希尔排序(Java实现)
- 算法精讲学习笔记 排序(一)
- 【Data_Structure笔记7】排序算法之【链式基数排序】
- 算法笔记--直接插入排序
- prim 算法笔记 最小生成树
- 【Data_Structure笔记8】排序算法之【选择排序---堆排序】
- 算法笔记--直接选择排序
- 最小圆覆盖 随机增量算法
- iOS算法笔记-快速排序-OC实现
- 算法笔记第一章--梳排序