首页 > 代码库 > 从排序开始学JAVA(2)——希尔排序
从排序开始学JAVA(2)——希尔排序
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。
基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
代码实现:
1 package sort; 2 3 public class ShellSort { 4 public static void main(String[]args){ 5 int[]array={49,38,65,97,76,13,27,49,55,4}; 6 double length=array.length; 7 8 int temp=0; 9 while(true){ //用d来判断最外层循环次数10 length=Math.ceil(length/2);11 int d=(int) (length);12 for(int x=0; x<d;x++){13 for(int i=x+d;i<array.length;i+=d){14 temp=array[i];15 int j=i-d;16 for(;j>=0&&temp<array[j];j-=d) //插入排序17 array[j+d]=array[j];18 array[j+d]=temp;19 20 }21 22 }23 24 if(d==1) break;25 26 }27 for(int i=0;i<array.length;i++)28 System.out.print(array[i]+" ");29 }30 31 32 }
从排序开始学JAVA(2)——希尔排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。