平成22年度 秋期 午前 問6
基礎理論
探索表の構成法を例とともに a〜c に示す。探索の平均計算量が最も小さい探索手法の組合せはどれか。ここで,探索表のコードの空欄は表の空きを示す。
〔探索表の構成法〕
a コード順に格納した探索表
コード データ
120380 / 120381 / 120520 / 140140 を上から昇順に詰めて格納(以下は空き)
b コードの使用頻度順に格納した探索表
120381 / 140140 / 120520 / 120380 を上から使用頻度の高い順に格納(以下は空き)
c コードから一意に決まる場所に格納した探索表
空き / 120381 / 空き / 120520 / 140140 / 空き / 120380 / 空き
⇒ 格納する行がコードから直に決まり、間に空きが残る- アa=2 分探索 / b=線形探索 / c=ハッシュ表探索
- イa=2 分探索 / b=ハッシュ表探索 / c=線形探索
- ウa=線形探索 / b=2 分探索 / c=ハッシュ表探索
- エa=線形探索 / b=ハッシュ表探索 / c=2 分探索
答えと解説を見る
✓ これが正解アa=2 分探索 / b=線形探索 / c=ハッシュ表探索
解説
格納の並び方が、使える探索手法を先に決めます。
まず設問の読み方を確かめます。問われているのは 3 つの表それぞれについて平均計算量が最も小さくなる手法であって、3 つの中でいちばん速い表を 1 つ選ぶ問いではありません。決め手は、その表の並び方が何を許すかです。コード順に詰めて並んでいる表は、大小を比べて範囲を半分ずつ絞れるので 2 分探索が効きます。使用頻度の順に並んでいる表は、並びがコードの大小と無関係なので絞り込みの手がかりがなく、上から順に見る線形探索しかありません。頻度の高いものが上にある分だけ平均は小さくなりますが、手法としては順に見る側です。コードから格納する場所が一意に決まり、間に空きが残る表は、位置を計算で求めるハッシュ表探索の姿です。設問がわざわざ、コードの空欄は表の空きを示す、と断っているのが伏線で、空きが飛び飛びに残るのは詰めて格納しない方式の特徴です。この 3 つを並べた組合せが正解になります。
ほかの選択肢はなぜ違うのか
- イa=2 分探索 / b=ハッシュ表探索 …:格納の場所が計算で一意に決まる表に、上から順に見る手法を当てています。位置が直に求まるのに全体を走査するのでは、その並べ方の利点を捨てることになります。
- ウa=線形探索 / b=2 分探索 / c…:コード順に詰めた表と、使用頻度順に並べた表の割り当てが入れ替わっています。大小で範囲を絞れるのは前者だけで、後者には絞り込みの手がかりがありません。
- エa=線形探索 / b=ハッシュ表探索 /…:間に空きが残る表に、範囲を半分ずつ絞る手法を当てています。この手法は値が順に詰まっていることを前提にするので成り立たず、コード順の表も順に見る側にしています。
この問題の用語
- ハッシュハッシュ関数で作られた値そのもの。元に戻せないので、中身を見せずに同じかどうかだけを確かめるのに使えます。
出典:平成22年度 秋期 応用情報技術者試験 午前 問6
同じ用語が出る問題
- 令和7年度 秋期 午前 問27:ハッシュインデックスに関する問題(ハッシュ)
- 令和6年度 秋期 午前 問46:エクスプロイトコードの説明(ハッシュ)
- 令和5年度 秋期 午前 問26:ハッシュインデックスに関する問題(ハッシュ)
- 令和5年度 春期 午前 問41:TPMに関する問題(ハッシュ)
- 令和2年度 10月 午前 問44:TPMに関する問題(ハッシュ)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)