开发者

Exam question about hash tables (interpretation of wording)

I was confused about the wording of a particular exam question about hash ta开发者_如何学编程bles. The way I understand it there could be two different answers depending on the interpretation. So I was wondering if someone could help determine which understanding is correct. The question is below:

We have a hash table of size 7 to store integer keys, with hash function h(x) = x mod 7. If we use linear probing and insert elements in the order 1, 15, 14, 3, 9, 5, 27, how many times will an element try to move to an occupied spot?

I'll break down my two different understandings of this question. First of all the initial indexes of each element would be:

1: 1

15: 1

14: 0

3: 3

9: 2

5: 5

27: 6

First interpretation:

1: is inserted into index 1

15: tries to go to index 1, but due to a collision moves left to index 0. Collision count = 1

14: tries to go to index 0, but due to collision moves left to index 6. Collision count = 2

3: is inserted into index 3

9: is inserted into index 2

5: is inserted into index 5

27: tries to go to index 6, but due to collisions moves to index 5 and then to 4 which is empty. Collision count = 4

Answer: 4?

Second interpretation:

Only count the time when 27 tries to move to the occupied index 5 because of a collision with the element in index 6.

Answer: 1?

Which answer would be correct?

Thanks.


The wording is silly.

The teacher arguably wants #1 but I would argue that #2 is pedantically correct because an element will only ever try to move to an occupied spot once, as pointed out. In the other cases it does not move to an occupied spot but rather from an occupied spot to a free spot.

Tests in school are sort of silly -- the teacher (or TA) already knows what he/she wants. There is a line to draw between "being pedantically correct" and "giving the teacher what they want". (Just never, ever give in to the provably wrong!)

One thing that has never (at least that I recall ;-) failed me in a test or homework is providing an answer with a solid -- and correct -- justification for the answer; this may include also explaining the "other" answer.

Teacher/environment, repertoire, hubris and grade (to name a few) need to be balanced.

Happy schooling.


Interpretation 1 is correct. Collision with 6 means that slot 6 is occupied, so why don't you count it?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜