哈希表查询

时间:2012-01-20 12:29:10

标签: hash hashtable

可以解释一下吗

  

给定大小为N = 11的散列表数组,并使用散列函数 -    h(x)= 3 x + 7 mod N

     

与线性探测一起,以下操作顺序是   进行:

     

插入5,插入15,插入4,插入8,插入7,插入12

     

哈希表的最终状态是什么?


按我的逻辑
h(5)=(3 * 5)+(7 mod 11)= 15 + 7 = 22 所以放在表[0]中 h(15)=(3 * 15)+(7 mod 11)= 45 + 7 = 52 所以放在数组[0] ..不能放入表[1]

但显然我的方法是错的。 - 例如h(15)在表[8]中排名15
我没有考虑到什么?

修改

忘记了mod 11的答案!简单的错误。
h(5)=((3 * 5)+ 7)mod 11 = 15 + 7 = 22 - > 22 mod 11 = 0 所以放在表[0]中 h(15)=((3 * 15)+ 7)mod 11 = 45 + 7 = 52 - > 52 mod 11 = 8 所以放在数组[8]

1 个答案:

答案 0 :(得分:2)

我认为你的哈希函数应该是(3x + 7)mod N,而不是3x +(7 mod N)。