Варианты алгоритма сортировки оболочки в Java

Есть ли способ рассчитать начальную точку цикла for и корректировки к нему. Оригинальный цикл имеет эти условия

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, в условие цикла for?

Ответы на вопрос(2)

Ваш ответ на вопрос