关于哈希查找,平方探测法(二次探测法)的问题

假设现在表中1-15中都已经填充了数据
现在一个元素的H(key)=3,按照平方探测法,
新地址是H=(H(key)+d)/m 例如m=20, d=1, -1, 4, -4, 9, -9......
依次检测4, 2, 7, 1, 12, -6
4, 2, 7, 1, 12 都有数据了,不能填充,关键在于这个 -6
请问这个 -6 要怎么处理?

你的好像弄错了,其实前面这个-4就已经是4-3=-1,这个代表将存储空间首尾相连(如同循环队列一样),你的这个下标如果从1开始,则-1自然是最大下标了,不知道你的表长度是否20,如果是,则就是20,不过一般这个下标范围是0~n-1,所以是n-1
还有,这个(H(key)+d)/m 应当是取余数吧,不会是/
顺便说一句,不知道你的表长度是否20,这个平方探测法的表长度要求是4k+3的质数,不然有些地方可能探测不到的
温馨提示:答案为网友推荐,仅供参考
相似回答