ハッシュ表(Hash Table)は、キー(Key)と値(Value)のペアを効率的に格納し、高速に検索するためのデータ構造です。データを格納する際、キーとなる情報(文字列や数値など)を「ハッシュ関数」と呼ばれる特殊な関数に入力し、固定長の整数値(ハッシュ値)を得ます。このハッシュ値を配列の「インデックス(格納アドレス)」として使用し、その位置に値を保存します。この仕組みにより、データの検索時にはキーをハッシュ関数に通すだけで格納先のアドレスが一発で判明するため、データ数がどれだけ増えても、ほぼ一定の時間(計算量O(1))で瞬時に目的のデータにアクセスできます。ただし、異なるキーから同じハッシュ値が計算されてしまう「ハッシュ衝突(コリジョン)」という問題が必ず発生するため、同じアドレスにリストを繋いでいく「チェイン法」や、空いている別のアドレスを探す「オープンアドレス法(クローズドハッシュ法)」などの衝突回避策をあらかじめ組み込んでおく必要があります。
試験でのポイント