码迷,mamicode.com
首页 > 编程语言 > 详细

从排序开始学JAVA(2)——希尔排序

时间:2014-09-15 17:18:09      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   ar   for   2014   div   

希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。

基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

bubuko.com,布布扣

代码实现:

 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)——希尔排序

标签:style   blog   http   color   java   ar   for   2014   div   

原文地址:http://www.cnblogs.com/pianpianfeiye/p/3972933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!