hash table
ハッシュテーブル
名詞
複数形: hash tables
hash tableは、大量のデータから特定の要素を極めて高速に検索、挿入、削除するために設計されたデータ構造です。最大の特徴は、hash functionを用いてキーを特定の数値(インデックス)に変換し、直接そのメモリ位置にアクセスすることで、データの量に関わらずほぼ一定の時間で操作を完了できる点にあります。
計算効率と性能の特性
この構造の最大の利点は、時間計算量が平均して定数時間であることです。一方で、異なるキーが同じインデックスに割り当てられてしまうcollision(衝突)という現象が発生することがあります。この衝突をどのように解決するか(例えば、chainingやopen addressingなどの手法)によって、実際のパフォーマンスやメモリ使用効率が左右されます。
他のデータ構造との比較
array(配列): インデックスが既知であれば高速ですが、特定の値を検索するには全要素を走査する必要があり、効率が落ちます。
binary search tree(二分探索木): データをソートされた状態で保持できるため範囲検索に強いですが、単一要素の検索速度はhash tableに劣ります。
意味
名詞ハッシュテーブル
ハッシュ関数を用いてキーをバケットやスロットの配列のインデックスにマッピングし、連想配列の抽象データ型を実装するデータ構造のこと
The developer used a hash table to ensure that user lookups remained efficient as the database grew.
開発者は、データベースが拡大してもユーザーの検索効率が維持されるように、ハッシュテーブルを使用した。
関連語
hash mapalgorithmbucketcollisionkeyvalueindexhash functionmoduloarraylinked listcomplexitytime complexityspace complexitysearchinsertiondeletionlookupmappingdictionarysetmapdata structurememoryaddresspointerslotentrychecksumcryptographydigestsaltseeddistributionuniformityclusteringoverflowresizetrieheapstackqueuecachebufferperformanceoptimizationsoftwareprogrammingcompilerruntimevariableconstantintegerstringobjectpointer arithmeticbitmask