IPA過去問ドリル

平成30年度 秋期 応用情報技術者試験 午前 問8

テクノロジ/アルゴリズム

探索表の構成法を例とともにa~cに示す。最も適した探索手法の組合せはどれか。ここで,探索表のコードの空欄は表の空きを示す。 a コード順に格納した探索表 コード:120380,120381,120520,140140(この順に格納し,以降は空き) b コードの使用頻度順に格納した探索表 コード:120381,140140,120520,120380(使用頻度が高い順にこの並びで格納し,以降は空き) c コードから一意に決まる場所に格納した探索表 各コードから一意に決まる位置(空き,120381,空き,120520,140140,空き,120380の順)に格納し,位置は歯抜けに空く (注:本サイトでは原問題の表を文字表記に変換しています)

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

正解:ア

解説

aはコードの大小順に格納されているため,比較のたびに範囲を半分に絞り込める2分探索が適しています。bは使用頻度順(未整列)に格納されているため,先頭から順に照合する線形探索が適しています。cはコードから位置が一意に計算されるため,計算した位置を直接参照するハッシュ表探索が適しています。

選択肢ごとの解説

  • 正しい。a:2分探索,b:線形探索,c:ハッシュ表探索の組合せが,それぞれの格納方法に最も適しています。
  • 誤り。bのように未整列でコードの使用頻度順に格納された表にハッシュ表探索を適用しても,位置を一意に特定できません。
  • 誤り。aのように大小順に整列された表に線形探索を用いるのは非効率であり,2分探索より適していません。
  • 誤り。aに線形探索,cに2分探索を当てはめると,整列済みの利点やハッシュの直接参照の利点を活かせません。
応用情報技術者の過去問を演習モードで解く