Hash Tables Double hashing Removal open addressing Chaining
Hash Tables Double hashing Removal (open addressing) Chaining November 29, 2017 Hassan Khosravi / Geoffrey Tien 1
Double hashing • November 29, 2017 Hassan Khosravi / Geoffrey Tien 2
Double hashing example • 0 1 2 3 November 29, 2017 4 5 6 7 29 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 58 21 Hassan Khosravi / Geoffrey Tien 3
Double hashing example • 0 1 2 3 November 29, 2017 4 5 6 7 29 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 58 81 21 Hassan Khosravi / Geoffrey Tien 4
Double hashing example • 0 1 2 3 November 29, 2017 4 5 6 7 29 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 58 81 35 21 Hassan Khosravi / Geoffrey Tien 5
Double hashing example • 0 1 2 3 November 29, 2017 4 5 6 7 29 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 58 60 81 35 21 Hassan Khosravi / Geoffrey Tien 6
Double hashing example • 0 1 2 3 November 29, 2017 4 5 6 7 29 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 58 60 81 35 83 21 Hassan Khosravi / Geoffrey Tien 7
Removals and open addressing • Removals add complexity to hash tables – It is easy to find and remove a particular item – But what happens when you want to search for some other item? – The recently empty space may make a probe sequence terminate prematurely • One solution is to mark a table location as either empty, occupied or removed (tombstone) – Locations in the removed state can be re-used as items are inserted • After confirming non-existence November 29, 2017 Hassan Khosravi / Geoffrey Tien 8
Tombstones and performance • 0 1 2 X X 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 X 29 X X 54 X 60 X X 35 X X 21 X search(75) requires 15 probes! After rehashing: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 29 54 35 60 21 search(75) November 29, 2017 requires 2 probes Hassan Khosravi / Geoffrey Tien 9
Separate chaining • November 29, 2017 Hassan Khosravi / Geoffrey Tien 10
Separate chaining example • 0 1 2 3 4 5 6 29 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 58 60 21 81 November 29, 2017 35 Tien Hassan Khosravi / Geoffrey 11
Hash table discussion • November 29, 2017 Hassan Khosravi / Geoffrey Tien 12
Readings for this lesson • Thareja – Chapter 15. 5. 1 (Double hashing) – Chapter 15. 5. 2 (Chaining) • Next class: – We're done! November 29, 2017 Hassan Khosravi / Geoffrey Tien 13
- Slides: 13