2分探索法
Binary Search
にぶんたんさくほう
整列済みデータの中央要素と目標値を比較し、探索範囲を半分に絞り込む操作を繰り返す探索アルゴリズム。計算量はO(log n)。データが整列されている前提が必要で、配列に対して適用される。
Related
他の資格での定義
整列済みデータの中央値と目的の値を比較し、探索範囲を半分に絞り込みながら探索するアルゴリズム。データ量が多い場合でも高速に探索できるが、データが事前にソートされている必要がある。
整列済みデータの中央値と目的の値を比較し、探索範囲を半分に絞り込む操作を繰り返す探索アルゴリズム。計算量はO(log n)で効率的。データが事前に整列されている必要がある。
整列済みのデータで、探索範囲の中央の値と目的の値を比較し、目的の値がある側の半分に範囲を絞ることを繰り返す探索の方法。1回の比較で範囲が半分になるので、データ数nに対する最大の比較回数は約log₂n回で、計算量はO(log n)である。データが整列している必要があり、追加・削除が多いデータでは整列を保つ費用がかかる。
整列済みのデータの列の中央の値と目的の値を比べ、探す範囲を半分ずつに絞り込んでいく探索方法。比較の回数は最大でもおよそlog₂n回、計算量はO(log n)と高速だが、データがあらかじめ整列されている必要がある。
Past Exams
過去問での出題
過去問で 4 回出題(基本情報技術者試験 3・ITパスポート試験 1)
出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。
Related
関連キーワードの用語
キーからハッシュ関数でアドレスを算出し、データを直接参照する探索法。平均O(1)で探索可能だが、衝突(異なるキーが同一アドレスに対応)が発生した場合の処理が性能に影響する。シノニム対策が重要。
データの先頭から順に1つずつ目的の値と比較して探索するアルゴリズム。実装が簡単だが、データ量に比例して探索時間が増加するため、大量のデータには不向きである。
最適化問題を部分問題に分割し、各部分問題の最適解を記憶して再利用することで全体の最適解を効率的に求める手法。ナップサック問題や最短経路問題などに適用され、メモ化再帰やボトムアップ方式で実装される。
アルゴリズムの実行に必要な時間や空間の量をオーダー記号O(n)で表現したもの。時間計算量と領域計算量があり、入力サイズnに対する増加傾向でアルゴリズムの効率を評価する。O(1)<O(log n)<O(n)<O(n log n)<O(n^2)<O(2^n)の順に計算量が大きい。
ピボット要素を選び、それより小さい要素と大きい要素に分割して再帰的に整列するアルゴリズム。平均計算量はO(n log n)だが最悪はO(n^2)。実用的には最速のソートアルゴリズムの一つで、多くの言語の標準ライブラリで採用。
データを半分に分割して再帰的に整列し、整列済みの部分列を統合(マージ)するアルゴリズム。計算量は常にO(n log n)で安定しており、安定ソート(同値要素の順序を保持)。外部ソートにも適用可能だが、O(n)の追加メモリが必要。
