希尔排序Java实现
直接上代码:
/*@(#)shellSort.java 2017-4-20
* Copy Right 2017 Bank of Communications Co.Ltd.
* All Copyright Reserved
*/
package com.sort.cn;
/**
* TODO Document shellSort
* <p>
* @version 1.0.0,2017-4-20
* @author Singit
* @since 1.0.0
*/
public class shellSort {
public static void main(String[] args) {
int a[]={13,54,64,38,78,34,99,46};
double d1=a.length;
int temp=0;
while(true){
d1= Math.ceil(d1/2);
int d=(int) d1;
for(int x=0;x<d;x++){
for(int i=x+d;i<a.length;i+=d){
int j=i-d;
temp=a[i];
for(;j>=0&&temp<a[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]+" ");
}
}
输出结果:
13 34 38 46 54 64 78 99