java 中基本算法之希尔排序的实例详解
java中基本算法之希尔排序的实例详解
希尔排序(ShellSort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。
希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
实例代码:
publicclassShellSort{ /** *原理:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的 *下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组, *在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。 * *@author阿信sxq-2015年7月16日 * *@paramargs */ publicstaticvoidmain(String[]args){ inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54, 56,17,18,23,34,15,35,25,53,51}; intd=a.length; inttemp=0; while(true){ d=d/2; for(intx=0;x=0&&temp 以上就是java算法的希尔排序的讲解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!