forループの開始点とその調整を計算する方法はありますか?元のループにはこれらの条件があります
for( int gap = a.length / 2; gap > 0; gap /= 2 )
Hibbard's Shell Sortの条件を設定するように調整し、これを取得しました
for( int gap = (int) Math.pow(2, a.length); gap > 0; gap /= 2 )
少し良く動作し、正しいかもしれませんが、ここからより高度なシェルソートで作業したいと思います。
http://en.wikipedia.org/wiki/Shellsort#Gap_sequences
n / 3の上限以下の(3 ^ k --1)/ 2をforループ条件にするにはどうすればよいですか?