您的位置:首页 > 其它

常见的几种排序算法二-希尔排序

2016-01-07 21:41 225 查看
希尔排序,是一个被专家称之为在任何排序地点都适用的排序。

“如果你不知道这个地方用什么排序好,那么选择希尔排序吧,如果现实证明他不够的优秀,在换其他的也不迟。”

是的他相对来说简单,容易实现。性能也足以应付很多场景,今天正式的认识一下希尔排序。

代码中有两个函数请参考常见几种排序算法一

public class Shell
{
public static void sort(Comparable[] a)
{
int N=a.length;
int h=1;
whlie(h<N/3)
{
h=3*h+1;//1,4,13,40,121,364……
}
while(h>=1)
{//将数组变为h有序
for(int i=h;i<N;i++)
{//将a[i]插入到a[i-h],a[i-2*h],a[i-3*h]...之中
for(int  j=i;j>=h&& less(a[j],a[j-h]);j-=h)
{
exch(a,j,j-h);
}

}
h=h/3;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: