点击查看代码
package Sort;
import java.util.*;
public class 希尔排序增量 {
public static void main(String[] args) {
//三个循环控制
int array[] = {2,9,8,6,10,12,7};
int n = array.length;
int inc;//增量
int key;//中间变量
int i,j;
for(inc = n/2; inc > 0; inc/=2) {
for( i = inc; i < n; i++) {//i=inc相当于i=1;
for(j = i; j >=inc ; j-=inc) {//已排跟待排的间隔是inc;j是>=inc,而不是跟插入一样>0,确保j-inc存在。
if(array[j] < array[j-inc]) {
key = array[j];
array[j] = array[j-inc];
array[j-inc] = key;
}
else break;
}
}
System.out.println(Arrays.toString(array));
}
System.out.println(Arrays.toString(array));
}
}