Hash衝突解決

2021-10-05 20:34:20 字數 477 閱讀 9105

hash衝突

解決方法:

再雜湊法

鏈位址法

建立公共溢位區

開放定址法也稱再雜湊,假設容量為c, 當前hash值為d,則:

線性探測再雜湊:依次探測d+1,d+2…c-1,0,1,2,d-1

平方探測再雜湊:依次探測d+12,d-12,d+22,d-22

偽隨機探測再雜湊:隨機序列3,2,5 依次d+3,d+2.d+5

再雜湊:

這種方法是同時構造多個不同的雜湊函式,當雜湊位址hi=rh1(key)發生衝突時,再計算hi=rh2(key)……,直到衝突不再產生。這種方法不易產生聚集,但增加了計算時間。

公共溢位區:這種方法的基本思想是:將雜湊表分為基本表和溢位錶兩部分,凡是和基本表發生衝突的元素,一律填入溢位表。

雜湊表裝填因子定義為:α= 填入表中的元素個數 / 雜湊表的長度

裝填因子越小,衝突的機會越小,但空間越浪費。

平方探測

解決hash衝突

開放位址法 1.線性探測法 線性再雜湊法是形式最簡單的處理衝突的方法。插入元素時,如果發生衝突,演算法會簡單的 從該槽位置向後迴圈遍歷hash表,直到找到表中的下乙個空槽,並將該元素放入該槽中 會導致相同hash值的元素挨在一起和其他hash值對應的槽被占用 查詢元素時,首先雜湊值所指向的槽,如果沒...

hash衝突解決

雖然我們不希望發生衝突,但實際上發生衝突的可能性仍是存在的。當關鍵字值域遠大於雜湊表的長度,而且事先並不知道關鍵字的具體取值時 衝突就難免會發 生。另外,當關鍵字的實際取值大於雜湊表的長度時,而且表中已裝滿了記錄,如果插入乙個新記錄,不僅發生衝突,而且還會發生溢位 因此,處理衝突和溢位是 雜湊技術中...

解決hash衝突

雖然我們不希望發生衝突,但實際上發生衝突的可能性仍是存在的。當關鍵字值域遠大於雜湊表的長度,而且事先並不知道關鍵字的具體取值時。衝突就難免會發 生。另外,當關鍵字的實際取值大於雜湊表的長度時,而且表中已裝滿了記錄,如果插入乙個新記錄,不僅發生衝突,而且還會發生溢位。因此,處理衝突和溢位是 雜湊技術中...