応用情報技術者 2012年 春期 午前2 問09
問題文
相異なるn個のデータが昇順に整列された表がある。この表を 個のデータごとのブロックに分割し、各ブロックの最後尾のデータだけを線形探索することによって、目的のデータの存在するブロックを探し出す。次に、当該ブロック内を線形探索して目的のデータを探し出す。このときの平均比較回数を表す式はどれか。ここで,m は十分に大きく、nはmの倍数とし、目的のデータは必ず表の中に存在するものとする。
選択肢
ア:
イ:(正解)
ウ:
エ:
相異なるn個のデータをブロック分割して探索する際の平均比較回数【午前2 解説】
要点まとめ
- 結論:平均比較回数は「」で表される。
- 根拠:ブロックの最後尾を線形探索する比較回数の平均は、ブロック内の線形探索の平均はだから。
- 差がつくポイント:ブロック分割の考え方と線形探索の平均比較回数の計算を正確に理解しているかどうか。
正解の理由
この問題は、個のデータを個のブロックに分割し、まず各ブロックの最後尾のデータを線形探索して目的のブロックを特定し、次にそのブロック内を線形探索する手法の平均比較回数を求めるものです。
- ブロック数は 個で、最後尾のデータを線形探索する平均比較回数は、目的のブロックがどこにあるか均等に分布すると考え、回となります。
- 目的のブロック内の線形探索は、ブロックサイズがなので平均比較回数はですが、ここで注意すべきは、ブロック数がであるため、全体の平均比較回数はとなります。
- したがって、合計の平均比較回数は となり、選択肢の中ではイが正解です。
よくある誤解
- ブロックの最後尾探索を二分探索と混同し、計算をしてしまう。
- ブロック内の探索回数を全体ので割らず、単純にの半分と考えてしまう。
解法ステップ
- データを個ずつのブロックに分割し、ブロック数をとする。
- 目的のデータが存在するブロックを探すため、各ブロックの最後尾のデータを線形探索する。平均比較回数は。
- 目的のブロック内で目的のデータを線形探索する。平均比較回数はブロックサイズの半分、すなわち。
- しかし、問題文の条件から、全体の平均比較回数はとなる。
- 選択肢の中からこの式に合致するものを選ぶ。
選択肢別の誤答解説
- ア:
→ 線形探索の平均回数を考慮せず、最大回数をそのまま足している。平均値ではない。 - イ:
→ 正解。ブロック探索とブロック内探索の平均比較回数の和。 - ウ:
→ ブロック数のみを考慮し、ブロック内探索を無視している。 - エ:
→ ブロック内探索の平均回数のみを考慮し、ブロック探索を無視している。
補足コラム
この問題は「分割探索法」の一種であり、線形探索とブロック分割を組み合わせた手法です。ブロックサイズを調整することで探索効率を最適化でき、とすると平均比較回数は最小化されます。これは二分探索のに比べて効率は劣りますが、実装が簡単なため特定の状況で有用です。
FAQ
Q: なぜブロックの最後尾だけを探索するのですか?
A: ブロックの最後尾のデータは、そのブロックの最大値であり、目的のデータがどのブロックにあるかを判別するための目印となるからです。
A: ブロックの最後尾のデータは、そのブロックの最大値であり、目的のデータがどのブロックにあるかを判別するための目印となるからです。
Q: 線形探索の平均比較回数はなぜ半分になるのですか?
A: 線形探索は目的のデータが均等に分布すると仮定すると、平均的に探索する回数はデータ数の半分になるためです。
A: 線形探索は目的のデータが均等に分布すると仮定すると、平均的に探索する回数はデータ数の半分になるためです。
関連キーワード: 線形探索、ブロック分割探索、平均比較回数、探索アルゴリズム、分割探索法

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

