希尔排序的思想:首先把排序分为若干个序列进行直接插入排序,等记录中的数基本有序再进行一次直接插入排序。
public class shellSort {
public static void shellSort(int[] numbers){
int len=numbers.length;
int temp=0;
int j=0;
for(int crement=len/2;crement>0;crement/=2)
{
for(int i=crement;i<len;i++)
{
temp=numbers[i];
for(j=i;j>=crement;j-=crement)
{
if(temp<numbers[j-crement])
{
numbers[j]=numbers[j-crement];
}else{
break;
}
}
numbers[j]=temp;
}
}
}
public static void printArr(int[] numbers){
for(int i = 0 ; i < numbers.length ; i ++ )
{
System.out.print(numbers[i] + ",");
}
System.out.println("");
}
public static void main(String[] args) {
int[] numbers = {10,20,15,0,6,7,2,1,-5,55};
System.out.print("排序前:");
printArr(numbers);
shellSort(numbers);
System.out.print("快速排序后:");
printArr(numbers);
}
}