ITの基礎知識|ITパスポート・基本情報

基本情報技術者 平成20年秋 問13

2017.10.04

2,000個の相違なる要素が、キーの昇順に整列された票がある。外部から入力したキーによってこの表を二分探索して、該当するキーの要素を取り出す。該当するキーがかならず表中にあることがわかっている時、キーの比較回数は最大何回か。

  • ア:  9
  • イ:  10
  • ウ:  11
  • エ:  12

 

Show answer

正解: ウ

解説:

二分探索法は、対象データが探索範囲の前方にあるか、後方にあるかで、探索範囲を半分にすることを繰り返すので、元の2000個のデータを何回2分割できるか数えると、11回となる。

また、二分探索法の最大比較回数は、「 ( log2n ) + 1」で求められる。ただ、これはデータが見つからないかもしれない場合に、分割した要素が1つになった後も比較が必要なため、+1回されている。

今回はかならず表中にあるので、log2 2000 を求めればよい。

log2 2000 = 10.965・・・なので、切り上げて11回であることが求められる。

なお、log2 2000  の計算は関数電卓が必要だが、「210=1024」を覚えておけば、「log2 1024=10」が分かるので、以下のように求めることも出来る。

10 =log2 1024<log2 2000<log2 2048=11