応用情報技術者
アルゴリズムとプログラミング
二分探索(バイナリサーチ)を行うための前提条件はどれか。
1.
対象のデータが昇順または降順に整列されていること。
✓ 正解
2.
データの個数が2のべき乗であること。
3.
データがリンクリスト構造で保持されていること。
4.
全てのデータが正の整数であること。
📝 解説
二分探索(バイナリサーチ)は「整列済みデータの中央値と比較して探索範囲を半分に絞る」高速探索アルゴリズムです。辞書で単語を探すとき、真ん中のページを開いて前か後かで半分に絞り込む方法と全く同じです。1000件のデータなら最大10回の比較で見つかります(2¹⁰=1024)。計算量O(log n)は線形探索のO(n)より圧倒的に速い!ただし「データが昇順または降順に整列されていること」が必須の前提条件です。整列されていなければ使えません。誤答の「2のべき乗個数が必要」「リンクリスト構造が必要」「正の整数のみ」はどれも事実と異なります。整列済みデータへの繰り返し検索では二分探索が最適解です!