Given input {4371, 1323, 6173, 4199, 4344, 9679, 1989} and a hash function h(x) = x mod 10, show the resulting: a. Separate chaining hash table. b. Hash table using linear probing. c. Hash table using quadratic probing. d. Hash table with second hash function h2(x) = 7 (x mod 7).
Read moreTextbook Solutions for Data Structures and Algorithm Analysis in Java
Question
Suppose that to mitigate the effects of secondary clustering we use as the collisionresolution function f(i) = i r(hash(x)), where hash(x) is the 32-bit hash value(not yet scaled to a suitable array index), and r(y) = |48271y( mod (231 1))|mod TableSize. (Section 10.4.1 describes a method of performing this calculationwithout overflows, but it is unlikely that overflow matters in this case.) Explainwhy this strategy tends to avoid secondary clustering, and compare this strategywith both double hashing and quadratic probing
Solution
The first step in solving 5 problem number 11 trying to solve the problem we have to refer to the textbook question: Suppose that to mitigate the effects of secondary clustering we use as the collisionresolution function f(i) = i r(hash(x)), where hash(x) is the 32-bit hash value(not yet scaled to a suitable array index), and r(y) = |48271y( mod (231 1))|mod TableSize. (Section 10.4.1 describes a method of performing this calculationwithout overflows, but it is unlikely that overflow matters in this case.) Explainwhy this strategy tends to avoid secondary clustering, and compare this strategywith both double hashing and quadratic probing
From the textbook chapter Hashing you will find a few key concepts needed to solve this.
Visible to paid subscribers only
Step 3 of 7)Visible to paid subscribers only
full solution