Professional Documents
Culture Documents
Dsa Ch12 Hash
Dsa Ch12 Hash
Chapter 12
Hash Basic concepts
Hash functions
Direct Hashing
Modulo division
Data Structures and Algorithms Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
12.1
Hash
Outcomes
Dr. Rang Nguyen
Collision resolution
experiment (program) to evaluate methods supplied for Open addressing
12.2
Hash
Contents
Dr. Rang Nguyen
1 Basic concepts
2 Hash functions
Basic concepts
Direct Hashing
Hash functions
Modulo division Direct Hashing
Modulo division
Digit extraction Digit extraction
Mid-square Mid-square
Mid-square
Mid-square Folding
Collision resolution
Folding Open addressing
Linked list resolution
3 Collision resolution
Open addressing
Linked list resolution
12.3
Hash
Basic concepts
Hash functions
Collision resolution
Open addressing
Linked list resolution
12.4
Hash
Basic concepts
Dr. Rang Nguyen
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Search complexity:
Size Binary Sequential Sequential
(Average) (Worst Case) Basic concepts
16 4 8 16 Hash functions
Direct Hashing
Modulo division
50 6 25 50 Digit extraction
Mid-square
12.6
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Collision resolution
Open addressing
Linked list resolution
12.7
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
12.7
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.8
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.9
Hash
Basic concepts
Dr. Rang Nguyen
Collision resolution
Open addressing
Linked list resolution
12.10
Hash
Basic concepts
Dr. Rang Nguyen
data.
12.10
Hash
Basic concepts
Dr. Rang Nguyen
data.
• Ideal hashing:
• No location collision
• Compact address space
12.10
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.11
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.12
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.13
Hash
Basic concepts
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.14
Hash
Basic concepts
Hash functions
Collision resolution
Open addressing
Linked list resolution
12.15
Hash
Hash functions
Dr. Rang Nguyen
• Direct hashing
• Modulo division Basic concepts
Hash functions
• Digit extraction Direct Hashing
Modulo division
Digit extraction
• Mid-square Mid-square
Mid-square
Folding
• Pseudo-random
12.16
Hash
Direct Hashing
Dr. Rang Nguyen
Basic concepts
Hash functions
The address is the key itself: Direct Hashing
Modulo division
Collision resolution
Open addressing
Linked list resolution
12.17
Hash
Direct Hashing
Dr. Rang Nguyen
Basic concepts
Collision resolution
Open addressing
Linked list resolution
12.18
Hash
Modulo division
Dr. Rang Nguyen
• Example:
Mid-square
Folding
Collision resolution
Numbering system to handle 1,000,000 Open addressing
Linked list resolution
employees
Data space to store up to 300 employees
hash(121267) = 121267 mod 307 = 2
12.19
Hash
Digit extraction
Dr. Rang Nguyen
Hash functions
Direct Hashing
Example: Modulo division
Digit extraction
379452→394 Mid-square
Mid-square
121267→112 Folding
Collision resolution
160252→102
045128→051
12.20
Hash
Mid-square
Dr. Rang Nguyen
Basic concepts
Hash functions
2 Direct Hashing
Address = middle digits of Key Modulo division
Digit extraction
Mid-square
Example: Mid-square
Folding
12.21
Hash
Mid-square
Dr. Rang Nguyen
Example: Mid-square
Mid-square
Collision resolution
12.22
Hash
Folding
Dr. Rang Nguyen
Collision resolution
→ 368 Open addressing
Linked list resolution
12.23
Hash
Folding
Dr. Rang Nguyen
Collision resolution
→ 368 Open addressing
Linked list resolution
fold boundary
321 + 456 + 987 = 1764
→ 764
12.23
Hash
Basic concepts
Hash functions
Collision resolution
Open addressing
Linked list resolution
12.24
Hash
Collision resolution
Dr. Rang Nguyen
12.25
Hash
Collision resolution
Dr. Rang Nguyen
Hash functions
• Open addressing Direct Hashing
Modulo division
• Bucket hashing Digit extraction
• Open Hashing
Mid-square
Mid-square
Folding
12.26
Hash
Open addressing
Dr. Rang Nguyen
Basic concepts
Collision resolution
Open addressing
Linked list resolution
12.27
Hash
Open addressing
Dr. Rang Nguyen
Basic concepts
12.28
Hash
Open addressing
Dr. Rang Nguyen
Basic concepts
Collision resolution
Open addressing
Linked list resolution
12.29
Hash
Open Addressing
Dr. Rang Nguyen
i=0
Basic concepts
while i < m do
Hash functions
j = hp(k, i) Direct Hashing
T[j] = k Mid-square
Mid-square
return j Folding
Collision resolution
else Open addressing
end
end
return error: “hash table overflow”
End hashInsert
12.30
Hash
Open Addressing
Dr. Rang Nguyen
i=0
while i < m do Basic concepts
i=i+1
end
end
return nil
End hashSearch
12.31
Hash
Open Addressing
Dr. Rang Nguyen
Collision resolution
• Key offset Open addressing
Linked list resolution
12.32
Hash
Linear Probing
Dr. Rang Nguyen
• When a home address is occupied, go to
the next address (the current address + 1):
hp(k, i) = (h(k) + i) mod m
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.33
Hash
Linear Probing
Dr. Rang Nguyen
• When a home address is occupied, go to
the next address (the current address + 1):
hp(k, i) = (h(k) + i) mod m
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.33
Hash
Linear Probing
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.34
Hash
Linear Probing
Dr. Rang Nguyen
• Advantages:
• quite simple to implement Basic concepts
Hash functions
• data tend to remain near their home Direct Hashing
Modulo division
12.35
Hash
Quadratic Probing
Dr. Rang Nguyen
Basic concepts
Collision resolution
Open addressing
Linked list resolution
12.36
Hash
Quadratic Probing
Dr. Rang Nguyen
• Advantages:
• works much better than linear probing Basic concepts
Hash functions
Direct Hashing
• Disadvantages:
Modulo division
Digit extraction
Mid-square
12.37
Hash
Double Hashing
Dr. Rang Nguyen
Basic concepts
Hash functions
• Using two hash functions: Direct Hashing
Modulo division
Digit extraction
Collision resolution
Open addressing
Linked list resolution
12.38
Hash
Linked List Resolution
Dr. Rang Nguyen
Basic concepts
• Major disadvantage of Open Addressing: Hash functions
Direct Hashing
12.39
Hash
Linked list resolution
Dr. Rang Nguyen
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Collision resolution
Open addressing
Linked list resolution
12.40