ハッシュテーブル(ハッシュテーブル)

逐語大きな柱  https://www.dazhuanlan.com/2019/08/26/5d634caaa6a11/

ダイレクトアドレッシングテーブル

直接アドレステーブル(直接アドレステーブル)テーブル内のエレメントのアレイの一般的概念の一般化は、Uのグローバルキーが比較的小さいキーを介して直接アクセスすることで、ダイレクトアドレッシングは、シンプルで効果的な技術です。
ダイレクトアドレッシングテーブル

ハッシュテーブル

ダイレクトアドレッシングテーブル欠点は明白です:場合は、テーブルのキーグローバルU大サイズ| U |ストレージスペースの多くを取るでしょう。

ハッシュ(ハッシュ)と目的は、一緒にランダムに混合置くことであるコンピュータサイエンスにおいて極めて有効かつ実用的な技術であり、この技術のハッシュ関数、任意の長さの入力は、固定長の出力(ハッシュ値に変換しました)。この変換は、圧縮マップ(出力空間入力空間よりもはるかに小さいです)。

ハッシュテーブル(ハッシュテーブル)が格納場所、すなわち、にマッピング直接ハッシュ関数を介してアレイハッシュ(キーをアドレス指定することにより、辞書操作(INSERTは、検索は、DELETE)、代替をハッシュすることによって実装されるデータ構造であるスロット(スロット))、どこかのテーブル$時間内からアクセス$ O(1)することが可能となります。

コンフリクト

コンフリクト(衝突):同じスロットにマップされた2つのキーを指す
競合を解決:競合を解決するには2つの方法、一方があるリンク方法(連鎖)は、他のあるオープンアドレッシング方法(アドレッシング開き)

ハッシュ関数

  • 分割ハッシュ関数(ヒューリスティック)
    $ H(K)= K MOD Mは$
  • 乗算ハッシュ関数(ヒューリスティック)
    $ H(K)= M lfloor(KA MOD。1)$ rfloor
  • グローバルハッシュ関数(ランダム化技術)
    ランダムハッシュ関数を選択することは、記憶されたキーワードのそれは独立させます

リンク法

リンク処理では、素子上の同じスロットにハッシュは、リンクされたリストに格納され、ヘッダ内のスロットにリストを格納します
ハッシュテーブル

全仏オープンへの対処

オープンアドレス指定方法では、すべての要素がハッシュテーブルに格納され、各エントリはいずれかNILであるか、ターゲット要素または最終が見つかるまで、エレメントを探すときに、すべてのエントリを調べるであろうセットの動的要素を含みますテーブルにないターゲット要素を識別します。オープンアドレス方式では、ハッシュテーブルが満たされる可能性があります。

プローブ配列(プローブ配列):$(H (K、0)、H(K、1)、...、H(K、M-1))$、 すなわち$(0,1、...、M- 1)$ 順列。

おすすめ

転載: www.cnblogs.com/JimmyShen/p/11411763.html