哈希表(散列)纸面绘制疑问:哈希函数h(x)=[½(x mod 8)]的索引范围
哈希表索引范围求证
你的结论是对的,该哈希函数对应的哈希表索引范围应为0→3,原因如下:
拆解哈希函数的计算逻辑:
- 第一步计算
x mod 8,该运算的结果范围是0到7(取值为0、1、2、3、4、5、6、7); - 第二步对第一步的结果取½后再取整数部分:
- 当
x mod 8为0或1时,最终哈希值为0; - 当
x mod 8为2或3时,最终哈希值为1; - 当
x mod 8为4或5时,最终哈希值为2; - 当
x mod 8为6或7时,最终哈希值为3。
- 当
- 第一步计算
整个哈希函数
h(x)的输出值仅包含0、1、2、3四个可能值,因此哈希表的索引只需覆盖这四个值,即范围0→3。
部分同学认为是0→7,应该是只关注了x mod 8的范围,没有完整计算整个哈希函数的最终输出结果,忽略了后续的取半取整操作。
内容的提问来源于stack exchange,提问作者lucian
相关产品推荐
相关产品推荐

