标签:style blog http color java ar for 2014 div
希尔排序(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 }
标签:style blog http color java ar for 2014 div
原文地址:http://www.cnblogs.com/pianpianfeiye/p/3972933.html