cs 225

CS 225 Data Structures Mar March h 15 15 Hash T Table C e - PowerPoint PPT Presentation

CS 225 Data Structures Mar March h 15 15 Hash T Table C e Collisions Wade Fa Wa Fagen-Ul Ulmsch schnei eider er, , Cra Craig Zi Zilles (Example of open hashing) Collision Handling: Sep eparate e Chaining S = { 16, 8, 4, 13,


  1. CS 225 Data Structures Mar March h 15 15 – Hash T Table C e Collisions Wade Fa Wa Fagen-Ul Ulmsch schnei eider er, , Cra Craig Zi Zilles

  2. (Example of open hashing) Collision Handling: Sep eparate e Chaining S = { 16, 8, 4, 13, 29, 11, 22 } |S| = n h(k) = k % 7 |Array| = N 0 1 2 3 4 5 6 Worst Case SUHA Insert Remove/Find

  3. (Example of closed hashing) Col Collision on Handling: Prob obe-based ed Hashing S = { 16, 8, 4, 13, 29, 11, 22 } |S| = n h(k) = k % 7 |Array| = N 0 1 2 3 4 5 6

  4. (Example of closed hashing) Col Collision on Handling: Linea ear Probing S = { 16, 8, 4, 13, 29, 11, 22 } |S| = n h(k) = k % 7 |Array| = N Try h(k) = (k + 0) % 7, if full… 0 Try h(k) = (k + 1) % 7, if full… 1 Try h(k) = (k + 2) % 7, if full… 2 Try … 3 4 5 6 Worst Case SUHA Insert Remove/Find

  5. A Problem em w/ Linea ear Probing Primary clustering: Description: Remedy:

  6. (Example of closed hashing) Collision Handling: Double e hashing S = { 16, 8, 4, 13, 29, 11, 22 } |S| = n h(k) = k % 7 |Array| = N Try h(k) = (k + 0*h 2 (k)) % 7, if full… 0 Try h(k) = (k + 1*h 2 (k)) % 7, if full… 1 Try h(k) = (k + 2*h 2 (k)) % 7, if full… 2 Try … 3 4 h(k, i) = (h 1 (k) + i*h 2 (k)) % 7 5 6

  7. Running Times es The expected number of probes for find(key) under SUHA Linear Probing: (Don’t memorize these • Successful: ½(1 + 1/(1-α)) equations, no need.) • Unsuccessful: ½(1 + 1/(1-α)) 2 Instead, observe: Double Hashing: • Successful: 1/α * ln(1/(1-α)) - As α increases: • Unsuccessful: 1/(1-α) Separate Chaining: - If α is constant: • Successful: 1 + α/2 • Unsuccessful: 1 + α

  8. Running Times es The expected number of probes for find(key) under SUHA Linear Probing: • Successful: ½(1 + 1/(1-α)) • Unsuccessful: ½(1 + 1/(1-α)) 2 Double Hashing: • Successful: 1/α * ln(1/(1-α)) • Unsuccessful: 1/(1-α)

  9. ReH eHashing What if the array fills?

  10. Which collision resolution strategy is better? • Big Records: • Structure Speed: What structure do hash tables replace? What constraint exists on hashing that doesn’t exist with BSTs? Why talk about BSTs at all?

Recommend


More recommend


Explore More Topics

Stay informed with curated content and fresh updates.