Java-雜湊表
阿新 • • 發佈:2022-04-04
雜湊表
1.1雜湊表概述:
- 是由雜湊表函式和HashTable 組成的,其中雜湊函式是可以進行自定義的,hash函式就是根據key計算出應該儲存地址的位置,而雜湊表是基於雜湊函式建立的一種查詢表
雜湊函式
- 一般情況下雜湊函式預設是資料對hashtable 的長度進行取模運算,從而計算出資料儲存的位置
雜湊碰撞
- 即不同的key值產生了相同的地址,H(key1)=H(key2)
比如我們上面說的儲存3 6 9,p取3是
3 MOD 3 == 6 MOD 3 == 9 MOD 3
此時3 6 9都發生了hash衝突
雜湊衝突的解決放方案
首先有一個H(key)的雜湊函式 如果H(key1)=H(keyi) 那麼keyi儲存位置H i = ( H ( k e y ) + d i ) M O D m H_i=(H(key)+d_i)MOD mH i =(H(key)+d i )MODmm為表長 di有三種取法 1.線性探測在雜湊 2.平方探測再雜湊 3.隨機探測在雜湊
實際開發中雜湊表也是很少單獨使用的,一般情況下,會結合連結串列一起去使用(雙鏈表)
————————————————
版權宣告:本文為CSDN博主「洌冰」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/u011109881/article/details/80379505