根据关于布谷鸟散列插入如何工作的documentation,如果value1要使用散列函数h1插入到位置h1(key1)处的table1中,并且h1(key1)已经因为(key2,value2)被插入使得h1(key2) = h1(key1)而被占用,则布谷鸟散列算法计算h2(key2)并尝试在中的位置h2(key2)处插入value2。重复此过程。
所述的查找算法是:
function lookup(x)
return T1[h1(x)] = x ∨ T2[h2(x)] = x
end但是,在查找key2的值时,value2可以是h1(key2)或h2(key2)。如果h1(key1) = h1(key2),则h1(key1)可以是value1 (发生驱逐)或value2 (不驱逐)。布谷鸟散列算法如何知道在哪个表中查找value2?
发布于 2015-04-09 04:23:59
似乎代码首先在T2处返回值,如果失败,则在T1处返回值。
function lookup(x)
return T1[h1(x)] = x ∨ T2[h2(x)] = x
end发布于 2015-04-09 04:24:05
只有一种方法可以找出答案:检查两个地点。或者一般而言,key2可能去过的所有地方。
https://stackoverflow.com/questions/29524399
复制相似问题