令和5年度 春期 応用情報技術者試験 午前 問19

テクノロジアルゴリズム

この問題は2023(R5)春 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで,複数のデータが同じハッシュ値になることはないものとする。

解答・解説を読む

正解: 選択肢

ハッシュ表は、データのキーからハッシュ関数を用いてハッシュ値を計算し、それを配列のインデックスとしてデータを格納・検索するデータ構造です。

問題の条件では「複数のデータが同じハッシュ値になることはない(シノニムが発生しない)」とされています。この場合、目的のデータを検索する際、ハッシュ関数で計算したハッシュ値を使って、データが格納されている場所に直接アクセスすることができます。

したがって、表の中に格納されているデータの個数(nn)によらず、探索にかかる時間(計算量)は常に一定(O(1)O(1))となります。
データの個数が増えても探索時間が増加せず一定であることを示すグラフは、水平な直線である「エ」です。

各選択肢の解説

  • : 下に凸の右上がりの曲線です。データの個数が増えると探索時間が急激に増加する(例:O(n2)O(n^2)O(2n)O(2^n) のアルゴリズム)ことを示しており、ハッシュ表の探索時間には当てはまりません。
  • : 右上がりの直線です。データの個数に比例して探索時間が増加する(O(n)O(n) のアルゴリズム、例:線形探索)ことを示しており、ハッシュ表の探索時間には当てはまりません。
  • : 上に凸の右上がりの曲線です。データの個数が増えると探索時間の増加度合いが緩やかになる(O(logn)O(\log n) のアルゴリズム、例:2分探索)ことを示しており、ハッシュ表の探索時間には当てはまりません。
  • : 水平な直線です。データの個数によらず探索時間が常に一定(O(1)O(1))であることを示しており、これがシノニムが発生しないハッシュ表の正しい理論的な探索時間です。