雙重散列法處理沖突 double hash 是啥?
double hash 是啥?雙重哈希是開放尋址哈希表中的可以解決技術(shù)。護(hù)體哈希的思想是在不可能發(fā)生時(shí)對(duì)鍵做第二個(gè)哈希函數(shù)。雙重哈希可以不一次性處理:(hash1(key)i*hash2(key))%
double hash 是啥?
雙重哈希是開放尋址哈希表中的可以解決技術(shù)。護(hù)體哈希的思想是在不可能發(fā)生時(shí)對(duì)鍵做第二個(gè)哈希函數(shù)。
雙重哈希可以不一次性處理:
(hash1(key)i*hash2(key))%TABLE_SIZE
這里hash1()、hash2()是hash函數(shù),TABLE_SIZE是hash表大小
(如果沒有突然發(fā)生,i趨近于接著再重復(fù)一遍運(yùn)算)
簡(jiǎn)單通俗的二次Hash函數(shù):hash2(key)PRIME–(key%PRIME)
PRIME一般中,選擇小于等于TABLE_SIZE的質(zhì)數(shù)
優(yōu)質(zhì)的二次Hash函數(shù)應(yīng)該是擁有這些條件:
二次Hash函數(shù)結(jié)果不能為0
第二個(gè)哈希函數(shù)要可以遍布表的每一個(gè)單元