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