Download presentation
Presentation is loading. Please wait.
1
Hash Tables
2
Container of elements where each element has an associated key Each key is mapped to a value that determines the table cell where element should be placed Mapping is called the hash function What is a Hash Table?
3
Hash Table Operations size() isEmpty() find(k) – find element with key k insertItem(k, e) – insert element e with key k removeElement(k) – remove element with key k elements() – return Iterator of elements keys() – return Iterator of keys
4
Array Implementation element is name key is id number map id number to array index [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] bob 1234 jane 1344 sally 1354
5
Why a Hash Table? Random access to items –Don’t have to perform search to find item Complexity of find/remove?
6
Hash Function The hash function has to map the key to a value –Bad option: add up ASCII values of characters in key and % by number of table elements –Better option: for(i=0; i < key.length(); i++) hashVal= 37*hashVal + key[i] hashVal %= tableSize
7
Collisions It is still possible that two keys will map to the same value Separate chaining –each array slot is a pointer to a linked list of elements –how would find/insert/remove work? Linear probing –walk down the list until you find an empty slot
8
Collisions Quadratic probing –A[i+f(j) mod N] for j=0, 1, 2, … where f(j) = j 2 Double Hashing –probe at hash 2 (x), 2hash 2 (x), etc
9
Rehashing As table gets full, insertions may slow because of more collisions Rehash by creating table twice as large and reinserting all elements into new table –requires rehashing all keys (because of new table size)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.