【問126】ITパスポート 練習問題|2分探索の前提条件
基礎理論とアルゴリズム 問16/20難易度B(標準)
問題文
多数のデータの中から目的のデータを探す方法のうち、2分探索を適用するために必要な前提はどれか。
- 1.データが配列ではなく、キュー構造で格納されていること
- 2.データの件数が2の累乗の個数でちょうど格納されていること
- 3.データの要素の値がすべて異なり、重複が一つもないこと
- 4.データが探索の対象とする項目の大きさの順に整列されていること
解説
正解は4。2分探索は、探索範囲の中央にある要素と目的の値を比べ、その大小関係から探索範囲を半分に絞る操作を繰り返す方法なので、データが探索の対象とする項目の大きさの順に整列されていることが前提となる。1は誤り。2分探索は添字によって中央の要素を直接取り出せる配列に対して使うものであり、キューである必要はない。2は誤り。件数が2の累乗でなくても適用できる。3は誤り。同じ値が含まれていても探索そのものは行える。先頭から順に一つずつ比べる線形探索は整列されていなくても使えるが、件数に比例して比較回数が増える。2分探索は1回の比較で候補が半分になるため、件数が多いほど有利になる。