为什么需要哈希
使用数组或者链表存储元素,一旦存储的内容数量特别多,需要占用很大的空间,而且在查找某一个元素是否存在的过程中,数据和链表都需要循环便利,而通过哈希计算,可以大大减少比较次数。
?...增量序列的取值方式不同,相应的再散列方式也不同。
用开放定址法解决冲突的做法是:
当冲突发生时,使用某种探测技术在散列表中形成一个探测序列。...查找时探测到开放地址则表明无待查的关键字,即查找失败。
简单的说:当发生冲突时,使用某种探测(亦称探测)技术在散列表中寻找下一个空的散列地址,只要散列表足够大,空的散列表地址总能找到。...定义h1(key)的方法比较多,但无论采用什么方法定义,都必须使h1(key)和值和m互素,才能使发生冲突的同义词地址均匀分布在整个表中,负责可能造成同义词地址的循环计算。...再哈希法
这种方法是同时构造多个不同的哈希函数:
Hi=RH1(key) i=1,2,3,,,,k
当哈希地址Hi=RH1(key)发生冲突时,再计算Hi=RH2(key),,,,直到冲突不再产生。