戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2009年 春期 午前208


問題文

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

選択肢

m+t-1
n/m + n/(2m)(正解)
n/m + n^2/(2m^2)
n/(2m)

相異なるデータのブロック分割による探索の平均比較回数【午前2 解説】

要点まとめ

  • 結論:平均比較回数は「」で表され、選択肢イが正解です。
  • 根拠:まずブロックの最後尾を線形探索し、次に該当ブロック内を線形探索するため、比較回数は両者の和となります。
  • 差がつくポイント:ブロック数とブロック内探索の平均回数の計算を正確に理解し、式の意味を正しく把握することが重要です。

正解の理由

選択肢イの「」は、
  • ブロック数は 個であり、目的のデータが必ず存在するため、ブロックの最後尾を線形探索する平均比較回数は
  • 目的のデータがブロック内に均等に分布すると仮定すると、ブロック内の線形探索の平均比較回数はブロックサイズ の半分、すなわち
  • これを の形に直すと、 となる。
    したがって、合計は となり、選択肢イが正解です。

よくある誤解

ブロックの最後尾探索とブロック内探索の比較回数を混同し、単純に のような誤った式を選ぶことがあります。
また、二乗の項が入った複雑な式を選ぶ誤りも多いです。

解法ステップ

  1. データ数 とブロックサイズ の関係を確認し、ブロック数を とする。
  2. ブロックの最後尾を線形探索する平均比較回数は
  3. ブロック内の線形探索は平均でブロックサイズの半分、すなわち
  4. の関係式で表すと
  5. 両者を合計し、平均比較回数は となる。
  6. 選択肢の中からこの式に合致するものを選ぶ。

選択肢別の誤答解説

  • ア: は問題文にない変数 が不明であり、意味が不明確です。
  • イ: は正しい平均比較回数の式です。
  • ウ: は二乗の項が入っており、探索回数の平均として過剰に大きい値を示します。
  • エ: はブロック内探索の平均のみで、ブロックの最後尾探索を考慮していません。

補足コラム

この問題は「ブロック探索法(ブロック線形探索)」の典型例です。
ブロック探索は、データが整列されている場合に、全体を小さなブロックに分割し、ブロックの代表値(ここでは最後尾のデータ)を先に探索することで、探索効率を改善します。
この手法は二分探索ほど高速ではありませんが、データ構造が単純な場合に有効です。

FAQ

Q: なぜブロック内の平均探索回数は なのですか?
A: 線形探索では目的のデータがブロック内のどこにあるか均等に分布すると仮定し、平均的に半分の位置で見つかるためです。
Q: ブロックの最後尾探索はなぜ線形探索なのですか?
A: 問題文で「各ブロックの最後尾のデータだけを線形探索する」と明示されているためです。

関連キーワード: ブロック探索法、線形探索、平均比較回数、データ構造、探索アルゴリズム
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について