平成30年度 春期 応用情報技術者試験 午前 問6
異なる 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 の和であり,平均比較回数を表します。 -
ウ: n/m
誤り。ブロックを探すときの最大比較回数だけで,ブロック内の探索が含まれていません。 -
エ: n/(2m)
誤り。ブロックを探すときの平均比較回数だけで,ブロック内の探索が含まれていません。
答え
イ: m/2 + n/(2m)
出典:平成30年度 春期 応用情報技術者試験 午前 問6