cs 225
play

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?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend