Hash Tables
Hash Tables
ESO207
h : U → {0, 1, . . . , m − 1}
n = n0 + n1 + . . . + nm−1
m−1
1 X
E nh(k ) = nj = α
m
j=0
as calculated before.
• The average case time complexity of search is
O(1 + α), where, the O(1) time is required for computing
the hash value h(k ).
Expectation Analysis: contd.
h(k ) = k mod m
kA mod 1 = kA − bkAc
ks = r1 2w + r0
1. Then,
ks r0
kA = w
= r1 + w
2 2
2. Hence the fractional part of kA is r0 /2w (since,
0 < r0 ≤ 2w − 1).
3. So, kA mod 1 = r0 /2w .
4. Hence,
j r k
0
h(k ) = bm(kA mod 1)c = 2p w
2
5. Since, r0 is a w-bit number, multiplying r0 /2w by 2p gives
the top p bits of r0 .
• Why? write r0 as a w-bit binary number:
r0 = b1 + b2 · 2 + b2 · 22 . . . + bw 2w−1
• Then,
r0 · 2p 1 p p+1 w+p−1
= b1 · 2 + b2 · 2 + . . . + bw · 2
2w 2w
1
= w−p b1 + b2 · 2 + . . . + bw−p · 2w−p−1
2
+ bw−p+1 + bw−p+2 · 2 + . . . + bw · 2p−1
• Thus,
r0 · 2p
= bw−p+1 + bw−p+2 · 2 + . . . + bw · 2p−1
2w