平成24年度 秋期 午前 問3
アルゴリズム
2分探索に関する問題
探索方法とその実行時間のオーダの適切な組合せはどれか。ここで,探索するデータの数を n とし,ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。また,実行時間のオーダが n² であるとは,n 個のデータを処理する時間が cn²(c は定数)で抑えられることをいう。
| 2分探索 | 線形探索 | ハッシュ探索 | |
|---|---|---|---|
| ア | log₂n | n | 1 |
| イ | n log₂n | n | log₂n |
| ウ | n log₂n | n² | 1 |
| エ | n² | 1 | n |
- アlog₂n n 1
- イn log₂n n log₂n
- ウn log₂n n² 1
- エn² 1 n
答えと解説を見る
✓ これが正解アlog₂n n 1
解説
2分探索はlog₂n、線形探索はn、ハッシュ探索は1です。
実行時間のオーダは、データの数が増えたときに手数が何に比例して伸びるかを表したものです。軸は三つの探索方法それぞれで、対象をどれだけ速く絞り込めるかが違う点にあります。整列済みのデータを毎回半分に切り詰めていく2分探索は、1回照合するたびに残りが半分になるので、数が2倍になっても手数は1つ増えるだけです。先頭から順に照合していく線形探索は、最悪の場合は最後まで見ることになるため、手数はデータの数に比例します。鍵から格納位置を計算して直接たどるハッシュ探索は、衝突を無視できるという前提が置かれているので、数がいくら増えても手数は変わりません。この三つの伸び方を正しく割り当てた組合せを選びます。
ほかの選択肢はなぜ違うのか
- イn log₂n n log₂n:2分探索にnとlog₂nを掛けた形を、ハッシュ探索にlog₂nを割り当てた組合せです。半分ずつ絞る方法は1回で残りが半分になるだけなので、データの数を掛けた形にはなりません。
- ウn log₂n n² 1:線形探索にn²を割り当てた組合せです。先頭から順に照合する方法は、最悪でもデータの数だけ照合すれば必ず終わるので、二乗の形に膨らむことはありません。
- エn² 1 n:2分探索にn²、線形探索に1、ハッシュ探索にnを割り当てた組合せです。三つとも実際の伸び方と結び付いておらず、とりわけ順に照合する方法がデータの数によらず一定になることはありません。
この問題の用語
- ハッシュ値データから計算した固定長の値のこと。同じデータなら必ず同じ値になるので、データの比較や検索を速くするのに使われます。
出典:平成24年度 秋期 基本情報技術者試験 午前 問3(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和6年度 科目A 問9:ペネトレーションテストの問題(ハッシュ値)
- 令和元年度 秋期 午前 問36:動的解析に該当するもの(ハッシュ値)
- 令和元年度 秋期 午前 問10:ハッシュ法に関する問題(ハッシュ値)
- 平成29年度 春期 午前 問7:2分探索に関する問題(ハッシュ値)
- 平成28年度 秋期 午前 問43:ビヘイビア法に分類されるもの(ハッシュ値)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)