0% found this document useful (0 votes)
4 views11 pages

Chapter 13 Hashing

This document introduces hashing as a technique for efficient data retrieval, allowing for search, insert, and delete operations in O(1) time using a hash table. It explains the concept of maps, which store key-value pairs, and discusses various methods for handling collisions in hash tables, such as linear probing, quadratic probing, and separate chaining. Additionally, it outlines the role of hash functions in mapping keys to indices in the hash table.

Uploaded by

hkk7kfv9np
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views11 pages

Chapter 13 Hashing

This document introduces hashing as a technique for efficient data retrieval, allowing for search, insert, and delete operations in O(1) time using a hash table. It explains the concept of maps, which store key-value pairs, and discusses various methods for handling collisions in hash tables, such as linear probing, quadratic probing, and separate chaining. Additionally, it outlines the role of hash functions in mapping keys to indices in the hash table.

Uploaded by

hkk7kfv9np
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 11

Hashing

1
Why Hashing?
The preceding chapters introduced search trees. An element can be
found in O(logn) time in a well-balanced search tree. Is there a more
efficient way to search for an element in a container? This chapter
introduces a technique called hashing. You can use hashing to
implement a map or a set to search, insert, and delete an element in
O(1) time.

2
Map
A map is a data structure that stores entries. Each entry contains two
parts: key and value. The key is also called a search key, which is
used to search for the corresponding value. For example, a
dictionary can be stored in a map, where the words are the keys and
the definitions of the words are the values.

A map is also called a dictionary, a hash table, or an associative


array. The new trend is to use the term map.

3
What is Hashing?
If you know the index of an element in the array, you can retrieve
the element using the index in O(1) time. So, can we store the
values in an array and use the key as the index to find the value?
The answer is yes if you can map a key to an index.

The array that stores the values is called a hash table. The function
that maps a key to an index in the hash table is called a hash
function.

Hashing is a technique that retrieves the value using the index


obtained from key without performing a search.

4
Hash Function and Hash Codes
A typical hash function first converts a search key to an integer
value called a hash code, and then compresses the hash code into
an index to the hash table.

5
Linear Probing Animation

6
Quadratic Probing

Quadratic probing can avoid the clustering problem in linear


probing. Linear probing looks at the consecutive cells beginning
at index k. Quadratic probing increases the index by j^2 for j = 1,
2, 3, ... The actual index searched are k, k + 1, k + 4, …

7
Double Hashing

Double hashing uses a secondary hash function on the keys to


determine the increments to avoid the clustering problem.

h’(k) = 7 – k % 7;

8
Handling Collisions Using Separate Chaining
The separate chaining scheme places all entries with the same hash
index into the same location, rather than finding new locations.
Each location in the separate chaining scheme is called a bucket.
A bucket is a container that holds multiple entries.

9
Implementing Map Using Hashing

10
Implementing Set Using Hashing

11

You might also like