資料結構 雜湊表

2021-09-07 11:45:44 字數 975 閱讀 1115

而雜湊表的查詢不用比較。通過關鍵碼直接確定儲存位置。

雜湊技術的關鍵問題:1、雜湊函式的設計。怎樣設計乙個簡單、均勻、儲存利用效率高的雜湊函式。

2、衝突的處理。

怎樣採用合適的處理衝突方法來解決衝突。

衝突:對於兩個不同的關鍵碼ki != kj,有h(ki) = h(kj),即兩個不同的記錄須要存放在同乙個儲存位置。ki和kj相對於h稱為同義詞。

雜湊函式。設計雜湊函式一般應遵循下面原則:

1、計算簡單。

雜湊函式不應該有非常大的計算量。否則會減少查詢效率。

2、函式值即雜湊位址分布均勻。

函式值要盡量均勻散布在位址空間,這樣才幹保證儲存空間的有效利用並降低衝突。

(1)、雜湊函式-直接定址法

雜湊函式是關鍵碼的線性函式。即h(key) = a *key + b (a、b為常數)

適用情況:事先知道關鍵碼。關鍵碼集合不是非常大且連續性較好。

(2)、雜湊函式-除留餘數法

雜湊函式為 : h(key) = key mod p 普通情況下。選p為小於或等於表長(最好接近表長)的最小素數。

適用情況:不要求事先知道關鍵碼的分布。 

(3)、雜湊函式-數字分析法

依據關鍵碼在各個位上的分布情況,選取分布比較均勻的若干位組成雜湊位址。

適用情況:能預先預計出所有關鍵碼的每一位上各種數字出現的頻度,不同的關鍵碼集合須要又一次分析。

(4)、雜湊函式-平方取中法

對關鍵碼平方後,依照雜湊表大小,取中間的若干位作為雜湊位址(平方後擷取)

適用情況:實現不知道關鍵碼的分布且關鍵碼的位數不是非常大。

(5)、雜湊函式-摺疊法

將關鍵碼從左到右切割成位數相等的幾部分,將這幾部分疊加求和,取後幾位作為雜湊位址。

適用情況:關鍵碼位數非常多,事先不知道關鍵碼的分布。

方法:1、線性探測法            2、二次探測法                3、隨機探測法

資料結構 雜湊表

1.雜湊表的定義 元素的儲存位置和它的關鍵碼之間建立乙個確定的對應關係h,使得每個關鍵碼key和唯一的儲存位置h key 相對應。在查詢時,根據這個確定的對應關係找到給定值k的對映h k 若查詢集合中存在這個記錄,則必定在h k 的位置上,這種查詢技術稱為雜湊技術。採用雜湊技術將記錄儲存在一塊連續的...

資料結構 雜湊表

雜湊表的定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把 關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的 速度。這個對映函式叫做雜湊函式,存放 記錄的陣列叫做雜湊表。雜湊函式的析構方法 餘數法 取關鍵字被某個不大於雜...

資料結構 雜湊表

3 雜湊函式 數字分析法 根據關鍵碼在各個位上的分布情況,選取分布比較均勻的若干位組成雜湊位址。適用情況 能預先估計出全部關鍵碼的每一位上各種數字出現的頻度,不同的關鍵碼集合需要重新分析。4 雜湊函式 平方取中法 對關鍵碼平方後,按照雜湊表大小,取中間的若干位作為雜湊位址 平方後擷取 適用情況 實現...