您的位置:首页 > 其它

八大排序之希尔排序

2016-05-16 11:30 344 查看
希尔排序就是插入排序的升华版,具体可以百度。。。。

代码:

public class ShellSort {
public static void main(String[] args) { int[]a={1,6,5,4,3,2,7};
//希尔排序
int d=a.length;
while(true)
{
d=d/2;
for(int x=0;x<d;x++)
{
for(int i=x+d;i<a.length;i=i+d)
{
if(a[i]<a[i-d])//0~i-1位为有序,若第i位小于i-1位,继续寻位并插入,否则认为0~i位也是有序的,忽略此次循环,相当于continue
{
int temp=a[i];
int j;
for(j=i-d;j>=0&&a[j]>temp;j=j-d)
{
a[j+d]=a[j];
}
a[j+d]=temp;
}
}
}
if(d==1)
break;
}

for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}


测试结果:

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