バイナリ挿入ソートは、挿入ソート アルゴリズムの改良版であり、ソート アルゴリズム中に、以前にソートされたシーケンスに要素が継続的に挿入されます。前半はソートされたシーケンスであるため、挿入ポイントを順番に検索する必要はありません。半検索方法を使用すると、挿入ポイントの検索を高速化できます。
public static void halfSort(int[] array) { int low, high, mid; int tmp, j; for (int i = 1; i < array.length; i++) { tmp = array[i]; low = 0; high = i - 1; while (low <= high) { mid = low + (high - low) / 2; if (array[mid] > tmp) high = mid - 1; else low = mid + 1; } for (j = i - 1; j > high; j--) { array[j + 1] = array[j]; } array[high + 1] = tmp; } }
ハーフソートアルゴリズムの概略図:
上記がこの記事の全内容であり、Java ハーフソートアルゴリズムを学習するすべての人に役立つことを願っています。
ハーフソートアルゴリズムの Java 実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。