平成24年度春期 問9 / 80

平成24年度 春期 応用情報技術者試験 午前 問9

相異なる n 個のデータが昇順に整列された表がある。この表を m 個のデータごとのブロックに分割し,各ブロックの最後尾のデータだけを線形探索することによって,目的のデータの存在するブロックを探し出す。次に,当該ブロック内を線形探索して目的のデータを探し出す。このときの平均比較回数を表す式はどれか。ここで,m は十分に大きく,n は m の倍数とし,目的のデータは必ず表の中に存在するものとする。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:イ

  • ブロックの数は n/m 個です。各ブロックの最後尾を線形探索するので,目的のブロックを見つけるまでの平均比較回数は約 n/(2m) 回です。
  • ブロック内には m 個のデータがあり,線形探索の平均比較回数は約 m/2 回です(m は十分大きいので近似できます)。

平均比較回数は m/2 + n/(2m) です。

  • ア: m + n/m
    誤り。ブロック探索・ブロック内探索とも最悪の場合の比較回数の和であり,平均ではありません。

  • イ: m/2 + n/(2m)
    正しい。ブロックの探索で平均 n/(2m) 回,ブロック内の探索で平均 m/2 回なので,合計 m/2 + n/(2m) 回です。

  • ウ: n/m
    誤り。ブロック数そのもので,ブロック探索の最悪回数にすぎず,ブロック内の探索も含んでいません。

  • エ: n/(2m)
    誤り。ブロックを探す平均回数だけで,ブロック内の探索回数 m/2 が含まれていません。


答え

イ: m/2 + n/(2m)

出典:平成24年度 春期 応用情報技術者試験 午前 問9

平成24年度春期の他の問題