问题描述
|
我对有关哈希表的特定考试问题的措辞感到困惑。我的理解方式取决于解释,可能会有两个不同的答案。所以我想知道是否有人可以帮助您确定哪种理解是正确的。问题如下:
我们有一个大小为7的哈希表来存储整数键,哈希函数为h(x)= x mod7。如果我们使用线性探测并按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?
第二种解释:
仅计算由于与索引6中的元素发生冲突而27尝试移动到占用的索引5的时间。
答:1?
哪个答案是正确的?
谢谢。
解决方法
解释1是正确的。与6碰撞意味着插槽6已被占用,那么为什么不计数呢?
, 措辞很愚蠢。
老师可以说要#1,但我会认为#2在学问上是正确的,因为一个元素只会尝试一次移动到一个占用的位置,如所指出的那样。在其他情况下,它不会移动到占用位置,而是从占用位置移动到空闲位置。
在学校进行考试有点愚蠢-老师(或TA)已经知道他/她想要什么。在“学到正确”和“给老师他们想要的东西”之间有一条界限。 (永远不要屈服于可证明的错误!)
从来没有(至少我记得;-)没有在考试或家庭作业中使我失败的一件事,就是为答案提供坚实而正确的理由。这可能还包括解释“其他”答案。
教师/环境,曲目,自大和年级(仅举几例)需要保持平衡。
愉快的教育。