過去問解きまくり研究所 ホーム

平成21年度 春期 午前 問8

アルゴリズム

線形探索に関する問題

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

答えと解説を見る

✓ これが正解イm/2+n/(2m)

解説

外側と内側の平均比較回数を足し合わせた形です。

この方法は探索を二段構えにしています。まずブロックの最後尾だけを順に線形探索し、目当てが入っているブロックを特定します。次に、そのブロックの中を線形探索して目当てを探し当てます。線形探索の平均比較回数は、探す対象が範囲の中にあるとき、範囲の要素数の半分になります。ブロックの数はデータ数を 1 ブロックの大きさで割った値なので、最後尾を探すときの平均比較回数はその半分、すなわち n を 2m で割った値です。目当てのブロックが見つかった後の探索は、1 ブロックに含まれる要素数を半分にした値、すなわち m を 2 で割った値で表せます。二つは順番に行う独立の作業なので、平均比較回数はそのまま足し合わせる形になります。したがって、m の半分と、n を 2m で割った値の和が、全体の平均比較回数を表す式です。

ほかの選択肢はなぜ違うのか

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

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)