根据documentation关于Cuckoo散列插入如何工作,如果要使用散列函数h1将value1插入到位置h1(key1)的table1中,并且因为(key2,value2)已经占用了h1(key1)插入使得h1(key2)= h1(key1),然后Cuckoo哈希算法计算h2(key2)并尝试在table2中的位置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(不驱逐)。 Cuckoo哈希算法如何知道要为value2查找哪个表?
答案 0 :(得分:1)
似乎代码首先在T2处返回值,如果失败则返回T1处的值。
function lookup(x)
return T1[h1(x)] = x ∨ T2[h2(x)] = x
end
答案 1 :(得分:0)
只有一种方法可以找到:检查两个位置。或者一般而言,key2
可能已经消失的所有位置。