資料結構 雜湊表

2021-10-23 13:21:13 字數 1070 閱讀 7513

---- 清華大學出版社(資料結構 c語言版)251頁

雜湊函式也就是是乙個映像,以達到o(1)時間查詢到乙個資料。

如果不同的關鍵字得到相同的雜湊位址,那麼就叫做雜湊衝突。

具有相同的函式值的關鍵字對該雜湊函式來說稱作同義詞。

直接定址法

數字分析法

平方取中法

摺疊法除留餘數法

隨機數法

開放定址法

hi = (h(key) + di) mod m ,i=1,2,3,……,k(k<=m-1)

(1) di=1,2,3,……,m-1 稱為線性再雜湊。(2) di=12,-12,22,-22,……, ±k^2(k<=m/2)稱二次探測再雜湊。

(3)d=偽隨機數序列,稱為隨即探測再雜湊

再雜湊法

hi = rhi(key) i=1,2,3,……,k

rhi 均是不同的雜湊函式,即在同義詞產生位址衝突時計算另乙個雜湊函式位址,直到衝突不再發生。這種方式不發生聚集,但是時間上有所增加。

鏈位址法

將所有關鍵字為同義詞的記錄儲存在同一線性鍊錶中。假設某雜湊函式產生的雜湊位址在區間 [0, m-1] 上,則設立乙個指標型向量

chain chainhash[m]; 其每個分量的初始狀態都是空指標。凡雜湊位址為i的記錄都插入到頭指標為chainhash[i] 的鍊錶中。在鍊錶中的插位置可以在表頭或表尾;也可以在中間,以保持同義詞在同一線性鍊錶中按關鍵字有序。

通俗來將:雜湊表的每一塊都是乙個指標,指向乙個鍊錶,鍊錶中存資料。

建立乙個公共溢位區

假設雜湊函式的值域為[0, m-1],則設向量hashtable[0, m-1]為基本表,每乙個分量存放乙個記錄,另設立向量overtable[0……v]為溢位表。所有關鍵字和基本表中關鍵字為同義詞的記錄,不管它們由雜湊函式得到的雜湊位址是什麼,一旦發生衝突,都填入溢位表。

再建立乙個額外的空間來儲存溢位後的元素。

資料結構 雜湊表

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

資料結構 雜湊表

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

資料結構 雜湊表

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