Cuckoo哈希插入如何工作?

时间:2015-04-08 20:09:15

标签: algorithm hash

根据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查找哪个表?

2 个答案:

答案 0 :(得分:1)

似乎代码首先在T2处返回值,如果失败则返回T1处的值。

function lookup(x)
    return T1[h1(x)] = x ∨ T2[h2(x)] = x
end

答案 1 :(得分:0)

只有一种方法可以找到:检查两个位置。或者一般而言,key2可能已经消失的所有位置。