有没有一种方法来计算循环和的起点调整它。 原始循环具有这些条件
for( int gap = a.length / 2; gap > 0; gap /= 2 )
我调整它来设置希巴德的壳牌排序的条件,并得到了这个
for( int gap = (int) Math.pow(2, a.length); gap > 0; gap /= 2 )
它的工作原理稍微好一点的,甚至可能是正确的,但我想从这里拥有较先进的外壳各种各样的工作。
http://en.wikipedia.org/wiki/Shellsort#Gap_sequences
我如何可以把(3 ^的k - 1)/ 2比N / 3的天花板不大于成用于循环条件?