昇順に整列済みの1,000件のデータから、2分探索法で目的のデータを探すとき、最大の比較回数は何回か。
- ①11回
- ②10回
- ③100回
- ④500回
答えと解説を見る
2分探索法は、整列済みのデータの中央の値と比べ、探す値が小さければ前半、大きければ後半に範囲を半分ずつ絞り込む方法です。1回比較するごとに範囲が半分になるので、データがn件のときの最大比較回数は、[log2n]+1 回([ ]は小数点以下切捨て)です。
29=512 ≦ 1,000 < 1,024=210 なので [log21,000]=9、最大比較回数は 9+1 = 10回です。
他の選択肢が不適切な理由
・11回:切捨てた値(9)ではなく切り上げた値(10)に1を加えた誤りです。
・100回:データ件数の10分の1としたもので、根拠がありません。
・500回:線形探索の平均比較回数(n/2)です。
覚え方のポイント
2分探索の前提は「データが整列済みであること」。最大比較回数は約log2n回で、1,000件なら約10回、100万件でも約20回と、件数が増えても比較回数はほとんど増えません。