応用情報技術者 2009年 春期 午前2 問08
問題文
相異なる個のデータが昇順に整列された表がある。この表を個のデータごとのブロックに分割し、各ブロックの最後尾のデータだけを線形探索することによって、目的のデータの存在するブロックを探し出す。次に、当該ブロック内を線形探索して目的のデータを探し出す。このときの平均比較回数を表す式はどれか。ここで、は十分大きく、はの倍数とし、目的のデータは必ず表の中に存在するものとする。
選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
ブロック分割した表の探索【午前2解説】
正解の理由
表は 個ずつのブロックに分かれているので、ブロックの数は です。まず各ブロックの最後尾のデータを先頭のブロックから順に比較して、目的のデータがあるブロックを見つけます。目的のデータはどのブロックにも同じ確率で存在するので、この比較の平均回数はブロック数の半分の 回です。次にブロック内の 個のデータを線形探索するので、その平均比較回数は 回です。合計すると となり、イが正解です。
解法ステップ
- ブロックの数を求める: 個
- ブロックを探す比較の平均回数:ブロック数の半分で 回( は十分大きいので、「+1」などの細かい差は無視する)
- ブロック内の線形探索の平均回数: 回
- 合計:
選択肢別の誤答解説
- ア: は、ブロックの探索とブロック内の探索がどちらも最後まで(最悪の場合)比較したときの回数です。平均ではありません。
- イ: は、二つの段階の平均比較回数の合計です。
- ウ: は、ブロックの数(ブロックを探す最大の比較回数)だけで、ブロック内の探索が含まれていません。
- エ: は、ブロックを探す平均回数だけで、ブロック内の探索が含まれていません。
よくある誤解
- 平均回数ではなく最大回数で計算すること。線形探索の平均比較回数は、データ数の約半分です。
- 二つの段階の一方だけを数えること。ブロックを探す比較と、ブロック内を探す比較の両方を足します。
補足コラム
平均比較回数 は、 のときに最小の になります。ブロックの大きさを にすると、全体を線形探索する場合(平均 回)より大幅に比較回数を減らせます。
FAQ
Q. なぜ「+1」を考えなくてよいのですか?
A. 個のデータを線形探索するときの平均比較回数は正確には 回ですが、問題文に「 は十分大きく」とあるので、近似として 回とみなしています。
A. 個のデータを線形探索するときの平均比較回数は正確には 回ですが、問題文に「 は十分大きく」とあるので、近似として 回とみなしています。
関連キーワード: 線形探索、平均比較回数、ブロック探索、計算量

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

