オリジナル模擬試験1 問5

問5

探索表の構成法を例とともに a~c に示す。探索の平均計算量が最も小さい探索手法の組合せはどれか。ここで,探索表のコードの空欄は表の空きを示す。
05.png/image-size:417×234
  • 05a.png/image-size:272×115

            

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム

正解

解説

[a コード順に格納した探索表]
線形探索では、(N+1)/2 回, 二分探索法では [log2N] 回が平均探索回数となります。([a]はaを超えない最大の整数を表します。)
データが昇順または降順に整列されている場合は、線形探索よりも二分探索の平均計算量が小さくなります。

[b コードの使用頻度順に格納した探索表]
使用頻度が高いデータが探索表の先頭のほうにたくさんあることになります。線形探索では探索表の先頭から順番に探索していくので、このような探索表では有効な方式です。
2分探索法は、データが整列されていないと使えないという条件がありますし、この表はハッシュ法に対応していないので、線形探索が唯一使用できる方法となります。

[c コードから一意に決まる場所に格納した探索表]
ハッシュ法は、探索データのキー値から、そのデータの格納場所(アドレス)を直接計算する方法で、(シノニムが発生しなければ)1回の計算で一意に目的のデータにたどりつくことができます。
1回の探索でいいので、この探索表の場合、最も計算量が少ない探索法はハッシュ表探索です。

まとめると、a が2分探索、b が線形探索、c がハッシュ表探索となります。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop