希尔排序,又称缩小增量排序,是一种改进的插入排序。
以下代码已使用DataChecker验证过。
如有错误,感谢指出!
采用Knuth增量序列:
public class InsertionSort {
public static void main(String[] args) {
int[] a = {9,3,1,4,6,8,7,5,2};
sort(a);
print(a);
}
static void sort(int[] arr){
for (int i = 1; i < arr.length; i++) {
for(int j=i; j>0; j--){
if(arr[j-1]>arr[j]) swap(arr, j, j-1);
}
}
}
static void swap(int[] a, int i, int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
static void print(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}