一.题目理解:
将给定的无重复正整数序列插入一个散列表,输出每个输入的数字在表中的位置。
所用的散列函数是 H(key)=key%TableSize,其中 TableSize 是散列表的表长。要求用平方探测法(只增不减,即H(Key)+i2)解决冲突。
注意散列表的表长最好是个素数。如果输入给定的表长不是素数,你必须将表长重新定义为大于给定表长的最小素数。
二.此题与书上代码的差别
1)此题要求输入的表长若为素数,则直接返回这个值。
(若返回大于N 且 不超过MAXTABLESIZE的最大素数:将p=N改为p=N+1)

2)平方探测法只增不减:即只有奇数次冲突,且别忘了最后加break(否则无法跳出循环)

本文详细介绍了如何使用平方探测法解决散列表中的冲突问题,特别是当表长为素数时的处理。代码实现包括了散列表的创建、哈希函数、查找和插入操作,并在主函数中展示了输入序列的处理过程。强调了输入表长如果不是素数,需要找到大于给定值的最小素数作为新的表长。此外,还提醒了在冲突解决过程中只进行奇数次探测的重要性。
最低0.47元/天 解锁文章
2036

被折叠的 条评论
为什么被折叠?



