我有一个大小为11的哈希表,实现为数组。我试图使用双哈希技术;我已经完成了大部分的数据。我的散列函数如下:
h1 = key mod 11
h2 = 3*key mod 4
这给了我h(k,i) = k mod 11 + i(k * 3 mod 4)
,其中i = 0,1,2,3,......
我已经填充了插槽0,1,4,8,9和10.我正在尝试插入19.这是我对散列19的结果:
1st time: 8 <-- collision
2nd time: 9 <-- collision
3rd time: 10 <-- collision
4th time: 11 <--- well there is no index 11 table ends with index 10
我该怎么办?
另外,当他们说“让表有11个插槽”时,这是否意味着哈希表有0到10的可用插槽?
答案 0 :(得分:2)
此更改将修复错误的哈希表索引计算:
h(k,i) = (key + i*(key*3 mod 4)) mod 11