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

希尔排序算法

时间:2018-04-10 16:06:12      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:移动   ble   分组   技术分享   希尔排序算法   nbsp   数据   com   情况下   

希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量为1。希尔排序通过这种策略使得整个数组在初始阶段达到从宏观上看基本有序,小的基本在前,大的基本在后。然后缩小增量,到增量为1时,其实多数情况下只需微调即可,不会涉及过多的数据移动。

技术分享图片

 

代码实现:

 

public class Shell 
 {
    public static void sort(Coparable[]  a) 
     {
          int N=a.length;
          int h=1;
          //分成若干组
          while (h<N/3)
              h=3*h+1;

          while(h>=1) 
           {
              for(int i=h;i<N;i++)
              {
                   for(int j=i;j>=h;&&less(a[j],a[j-h]);j-=h;)
                   exch(a,j,j-h);

                }
              h=h/3;
                }
           }
 }

 

希尔排序算法

标签:移动   ble   分组   技术分享   希尔排序算法   nbsp   数据   com   情况下   

原文地址:https://www.cnblogs.com/guangzhou11/p/8779637.html

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