Skip to main content

ハッシュテーブルとは何ですか?

Computer Computer Scienceでは、ハッシュテーブルは、キーと呼ばれる値のリストで構成されるデータを保存するためのデータ構造であり、配列と呼ばれる対応する値のリストとペアになります。たとえば、ビジネス名はアドレスとペアになる場合があります。通常、配列内の各値には、ハッシュと呼ばれる位置番号があります。ハッシュ関数は、通常、各キー値をハッシュ&MDASHにマッピングする一連の命令またはアルゴリズムです。たとえば、ビジネス名を住所、電話番号、ビジネスカテゴリに接続します。ハッシュ関数の目的は、各キーを配列内の一意の対応する値に割り当てることです。これは一般にハッシュと呼ばれます。ハッシュ機能が適切に機能するには、ハッシュ関数を適切にフォーマットする必要があります。

データセット上のハッシュテーブルのパフォーマンスは、ハッシュ関数の効率に依存します。通常、優れたハッシュ関数は、キーの均一な検索と、対応する配列内のマッピングの均等な分布を提供します。2つのキーが同じ対応する値に割り当てられている場合、ハッシュ衝突が発生します。ハッシュ衝突が発生すると、ハッシュ関数は通常、一意の対応する値が見つかるまで再び実行されます。これにより、通常、ハッシュ時間が長くなります。ハッシュテーブルのキーの数は通常固定されていますが、時にはキーが重複する場合があります。それでも、適切に設計されたハッシュテーブルには、各キーを配列内の一意の対応する値にマッピングする効果的なハッシュ関数があります。hashableの非効率的なハッシュ関数は、マッピングのクラスターを生成する場合があります。ハッシュ関数が既存のキーのマッピングのクラスターを作成すると、対応する値を検索するのにかかる時間を増やすことができます。これにより、ほとんどのハッシュ関数は一般にアレイで次に利用可能な位置を探すため、将来のキーのハッシュを遅くすることができます。値の大きなクラスターがすでに割り当てられている場合、通常、新しいキーの未割り当ての値を探すのにはるかに時間がかかります。load荷重係数は、ハッシュ関数の効率に関連する別の概念です。負荷係数は、ハッシュテーブルの対応する配列の全体的なサイズに関連して、すでに既存のハッシュの量です。通常、既に割り当てられたキーの数を対応する配列のサイズで割ることによって定義されます。負荷係数が増加すると、適切なハッシュ関数は通常、一定数の衝突とクラスターを特定のポイントまで維持します。多くの場合、このしきい値を使用して、特定の数のキーと新しいハッシュ関数が必要な場合に、ハッシュ関数がどれだけ効率的であるかを判断できます。増加する負荷率を与えられた衝突やクラスターを生成しないもの。理論的には、完全なハッシュテーブルを生成するための鍵は、完全なハッシュ関数を生成することです。一般的に、研究者は、完全なハッシュ関数には一定のパフォーマンスが必要であると考えています。衝突とクラスターの数—増加する負荷係数。最悪のシナリオでは、完全なハッシュ関数は、しきい値に達することなく一定のハッシュを可能にします。