【发布时间】:2011-06-25 04:34:48
【问题描述】:
我对有关哈希表的特定考试问题的措辞感到困惑。我理解它的方式可能有两个不同的答案,具体取决于解释。所以我想知道是否有人可以帮助确定哪种理解是正确的。问题如下:
我们有一个大小为 7 的哈希表来存储整数键,哈希函数 h(x) = x mod 7。如果我们使用线性探测并按 1、15、14、3、9、5 的顺序插入元素, 27, 元素会尝试移动到占用的位置多少次?
我将分解我对这个问题的两种不同理解。首先每个元素的初始索引是:
1:1
15:1
14:0
3:3
9:2
5:5
27:6
初译:
1:插入索引 1
15:尝试转到索引 1,但由于碰撞向左移动到索引 0。碰撞计数 = 1
14:尝试去索引 0,但由于碰撞向左移动到索引 6。碰撞计数 = 2
3:插入索引 3
9:插入索引 2
5:插入索引 5
27:尝试去索引 6,但由于碰撞移动到索引 5,然后移动到 4,它是空的。碰撞次数 = 4
答案:4?
二次解读:
只计算 27 因为与索引 6 中的元素发生冲突而试图移动到占用的索引 5 的时间。
答案:1?
哪个答案是正确的?
谢谢。
【问题讨论】:
标签: hashtable