Hash 开放寻址中的线性探测

Hash 开放寻址中的线性探测,hash,Hash,我有一个大小为m=11的数组,我的哈希函数是除法:h(k)=k mod m 我有一个整数k=10和10 mod 11是-1,那么我应该把这个键放在数组中的什么位置?我应该把这把钥匙放在索引为10的插槽里? 请帮帮我谢谢 编辑:为了得到好的答案,例如,我有像k=10,22,31,4,15,28,17,88,59这样的整数 阵列是这样的吗?谢谢 10 9 8 7 6 5 4 3 2 1 0 index 10 31 59 17 28 4 15

我有一个大小为
m=11的数组,我的哈希函数是除法:
h(k)=k mod m
我有一个整数
k=10
10 mod 11是-1
,那么我应该把这个键放在数组中的什么位置?我应该把这把钥匙放在索引为10的插槽里? 请帮帮我谢谢

编辑:为了得到好的答案,例如,我有像
k=10,22,31,4,15,28,17,88,59这样的整数

阵列是这样的吗?谢谢

10  9   8   7   6   5   4   3   2   1   0     index
10  31  59  17  28  4   15          88  22    keys

通常情况下,10 mod 11是10,所以是的,通常使用索引10

编辑:概括:至少按照通常的定义,给定两个正输入,模总是会产生正结果。因此,你关于如何处理负面结果的问题对于正常的定义来说是没有意义的


如果你真的有可能得到一个负面的结果,我的即时反应将是切换到一些语言,将产生一个合理的结果。如果您不能这样做,那么您可能希望通过将
m
添加到负数,将值移动到正确的范围内,直到您得到该范围内的数字[0..m)因此它符合
mod
的正常定义,然后将其用作索引。

例如,如果我有k=4,那么11模式4=-6,那么我应该将键放在索引为5的插槽中?我也编辑了我的示例,是否正确?我在回答中也使用了你的版本:)@matin1234:我觉得不太正确。4 mod 11应该是4,这将在索引4处结束。然后15 mod 11也是4,所以(使用线性探测)这将在索引5处结束。感谢你的站点,但我想做一些不是我的家庭作业的例子。无论如何,谢谢