希尔排序算法
Posted 1点
tags:
篇首语:本文由小常识网(cha138.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; } } }
以上是关于希尔排序算法的主要内容,如果未能解决你的问题,请参考以下文章