双重散列法处理冲突 double hash 是啥?

double hash 是啥?双重哈希是开放寻址哈希表中的可以解决技术。护体哈希的思想是在不可能发生时对键做第二个哈希函数。双重哈希可以不一次性处理:(hash1(key)i*hash2(key))%

double hash 是啥?

双重哈希是开放寻址哈希表中的可以解决技术。护体哈希的思想是在不可能发生时对键做第二个哈希函数。

双重哈希可以不一次性处理:

(hash1(key)i*hash2(key))%TABLE_SIZE

这里hash1()、hash2()是hash函数,TABLE_SIZE是hash表大小

(如果没有突然发生,i趋近于接着再重复一遍运算)

简单通俗的二次Hash函数:hash2(key)PRIME–(key%PRIME)

PRIME一般中,选择小于等于TABLE_SIZE的质数

优质的二次Hash函数应该是拥有这些条件:

二次Hash函数结果不能为0

第二个哈希函数要可以遍布表的每一个单元

标签: