2分探索法
Binary Search
にぶんたんさくほう
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(n)。データが整列されていなくても使用できるが、データ数が多い場合は非効率。逐次探索とも呼ばれる。
ハッシュ関数を用いてキーからデータの格納位置を直接計算して探索するアルゴリズム。平均計算量はO(1)で非常に高速。衝突が多発すると性能が低下する。
最適化問題を部分問題に分割し、各部分問題の解を記憶しながら全体の最適解を求めるアルゴリズム設計手法。重複する部分問題を再計算せずに済むため効率的。ナップサック問題や最短経路問題に応用される。
直前の2項を足した値が次の項になる数列。1,1,2,3,5,8,13…と続く。再帰処理の例題として頻出で、素直に再帰で書くと同じ計算を何度も繰り返すため、途中結果を保存する動的計画法で高速化できる。
アルゴリズムの実行に必要な計算ステップ数を入力サイズの関数として表したもの。オーダー記法O(n)で表現され、O(1)、O(log n)、O(n)、O(n log n)、O(n²)などがある。アルゴリズムの効率を評価する基本指標。
隣接する要素を比較して交換を繰り返すことでデータを整列するアルゴリズム。平均・最悪計算量ともにO(n²)で効率は良くないが、アルゴリズムが単純で理解しやすい。安定ソート。
