ハッシュ表



ソース
高速キャンパスアルゴリズムallin oneパッケージを征服

Hash Tableとは?


Hash tableはkeyとvalueでデータを格納するデータ構造の1つであり、データをすばやく検索できるデータ構造である.またhash tableを理解するためには,まず使用する用語の概念を理解する必要がある.
用語
1.ハッシュ(ハッシュ)
:任意の値を固定長に変換
2.ハッシュ関数
:特定の演算を使用してkeyに格納または参照するデータの場所を作成する関数です.
3.ハッシュ値またはハッシュアドレス
:keyをhashing関数の値としてhashテーブルに格納するアドレスは、hashテーブルで検索されるアドレスです.
4.ハッシュ表
:valueを格納するデータ・リポジトリ.

2.実施


hashテーブルの欠点の1つは、複数のキーに対応するアドレスが동일である場合、충돌を解決するために별도 자료구조が必要であることである.これは後で再び新しい文字で論述する.今はただ简単に実现します!
ハッシュ表
hash_table = list([i for i in range(10)])
[0,1,2,3,4,5,6,7,8,9]->10空間
ハッシュ関数
def hash_func(key):
  return key % 5
ハッシュ・テーブルに保存された関数
def storage_data(data, value):
  key = ord(data[0]) // ord는 문자열을 아스키값으로 치환
  hash_address = hash_func(key)
  hash_table[hash_address] = value
データを読み込む関数
def get_data(data):
  key = ord(data[0])
  hash_address = hash_func(key)
  return hash_table[hash_address]