Quadratic Probing: Exercise III
- Describe other probing strategies (quadratic, double hashing, ... for open address hash table.
Suppose we have a hash table with capacity $M=7$, and we aim to insert integer keys. Further, assume the hashCode()
is defined as the sum of the digits of key
.
Exercise Complete the table after each of the following operations, assuming collision resolution using quadratic probing.
[ 0 ] | [ 1 ] | [ 2 ] | [ 3 ] | [ 4 ] | [ 5 ] | [ 6 ] | |
---|---|---|---|---|---|---|---|
insert(5005) | |||||||
insert(6374) | |||||||
insert(2637) | |||||||
insert(7897) | |||||||
insert(3453) | |||||||
insert(2703) | |||||||
insert(7151) |
Solution
[ 0 ] | [ 1 ] | [ 2 ] | [ 3 ] | [ 4 ] | [ 5 ] | [ 6 ] | |
---|---|---|---|---|---|---|---|
insert(5005) | 5005 | ||||||
insert(6374) | 5005 | 6374 | |||||
insert(2637) | 5005 | 2637 | 6374 | ||||
insert(7897) | 7897 | 5005 | 2637 | 6374 | |||
insert(3453) | 7897 | 3453 | 5005 | 2637 | 6374 | ||
insert(2703) | 7897 | 3453 | 5005 | 2637 | 2703 | 6374 | |
insert(7151) | 7897 | 3453 | 7151 | 5005 | 2637 | 2703 | 6374 |
Here are the calculations:
$$ 5 + 0 + 0 + 5 = 10 \implies 10 \space \% \space 7 = 3 $$
$$ 6 + 3 + 7 + 4 = 20 \implies 20 \space \% \space 7 = 6 $$
$$ 2 + 6 + 3 + 7 = 18 \implies 18 \space \% \space 7 = 4 $$
$$ 7 + 8 + 9 + 7 = 31 \implies 31 \space \% \space 7 = 3 $$
The position [3]
is already occupied; the quadratic probe would explore the sequence:
- $(3 + 1) \% 7 = 4$ OCCUPIED
- $(3 + 4) \% 7 = 0$ Bingo!
$$ 3 + 4 + 5 + 3 = 15 \implies 15 \space \% \space 7 = 1 $$
$$ 2 + 7 + 0 + 3 = 12 \implies 12 \space \% \space 7 = 5 $$
$$ 7 + 1 + 5 + 1 = 14 \implies 14 \space \% \space 7 = 0 $$
The position [0]
is already occupied; the quadratic probe would explore the sequence:
- $(0 + 1) \% 7 = 1$ OCCUPIED
- $(0 + 4) \% 7 = 4$ OCCUPIED
- $(0 + 9) \% 7 = 2$ Bingo!