希尔排序的效率取决于算法中的递增序列,下面记下两种实际问题中常用的递增序列,以便以后查阅。
1、
int N = a.length;
int h = 1;
while (h < N / 3) {
h = h * 3 + 1;
}
2、性能比第一种提高百分之20至40。将其存储在数组a中。
int[] a = { 1, 5, 19, 41, 109, 209, 505, 929, 2161, 3905, 8929, 16001, 36289, 64769, 146305, 260609 };
//是根据 9 x (4的k次方) - 9 x (2的k次方) + 1 和 (4的k次方) - 3 x (2的k次方) + 1 综合得到的