雜湊表之線性探測和二次探測

2021-10-03 08:46:23 字數 520 閱讀 1468

雜湊表又稱雜湊表。

雜湊表儲存的基本思想是:以資料表中的每個記錄的關鍵字 k為自變數,通過一種函式h(k)計算出函式值。把這個值解釋為一塊連續儲存空間(即陣列空間)的單元位址(即下標),將該記錄儲存到這個單元中。在此稱該函式h為哈函式或雜湊函式。按這種方法建立的表稱為雜湊表或雜湊表。

處理衝突的方法:

開放定址法:hi=(h(key) + di) mod m, i=1,2,…, k(k<=m-1),其中h(key)為雜湊函式,m為雜湊表長,di為增量序列,可有下列三種取法:

1.di=1,2,3,…, m-1,稱線性探測再雜湊;

2.di=1^2, -1^2, 2^2,-2^2, 3^2, …, ±(k)^2,(k<=m/2)稱二次探測再雜湊;

3.di=偽隨機數序列,稱偽隨機探測再雜湊。

再雜湊法:hi=rhi(key), i=1,2,…,k. rhi均是不同的雜湊函式,即在同義詞產生位址衝突時計算另乙個雜湊函式位址,直到衝突不再發生,這種方法不易產生「聚集」,但增加了計算時間;

雜湊之閉雜湊(線性探測 二次探測)

hashtable.h include include include include common.h 雜湊表位置的狀態 typedef enum state state typedef int datatype typedef char datatype 轉換int函式指標 typedef si...

雜湊表KV形式的二次探測

雜湊表主要有兩種形式 1 key形式的,存入key的值,然後再去查詢key的值 2 key value形式的,存入key和對應的value的值,然後通過key來查詢value的值,主要可以來實現kv字典查詢 對於以上兩點本部落格並不都一一實現,而是僅僅實現kv形式的 其實庫中也有雜湊表這兩種的實現,...

雜湊之線性探測法

資料結構實驗之查詢七 線性之雜湊表 time limit 1000ms memory limit 65536kb problem description 根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h key key p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重...