[アルゴリズム]ヒルアルゴリズム
651 ワード
ヒルアルゴリズムは挿入順序と泡の延長であり、配列分割grap=length/2をステップサイズ2で小塊に分けて並べ替えてから、grap/2を続けて上述の並べ替えを行い、grap=1で並べ替えを完了するまで、配列をほぼ秩序化させ、並べ替え回数を減少させ、複雑度を低減させる.
for (int gap = array.length / 2; gap > 0; gap /= 2) {
// gap ,
for (int i = gap; i < array.length; i++) {
int j = i;
int temp;
while (j - gap >= 0 && array[j] < array[j - gap]) {
temp = array[j];
array[j] = array[j - gap];
array[j - gap] = temp;
j -= gap;
}
}
}