排序算法之希尔排序
public class shellsort {
public static void printArray(int[] num)
{
for(int i : num)
{//遍历数组
System.out.printf("%d\t", i);
}
System.out.println();
}
public static void main(String []args)
{
int i,j,d;
int tmp=0;
int num[]= {6,5,1,2,0,8,7,9,3,4,10};
d=num.length/2;
while(d>0)
{
for(i=d;i<num.length;i++)
{
tmp=num[i];
j=i-d;
while(j>=0&&tmp<num[j])
{
num[j+d]=num[j];
j=j-d;
}
num[j+d]=tmp;
}
d=d/2;
printArray(num);
}
}
}
结果:
6 5 1 2 0 8 7 9 3 4 10
0 2 1 4 3 5 6 8 7 9 10
0 1 2 3 4 5 6 7 8 9 10
时间复杂度:
O(n^1.3)