Hashing is a technique of mapping a large set of arbitrary data to tabular indexes using a hash function. It is a method for representing dictionaries for large datasets.

It allows lookups, updating and retrieval operation to occur in a constant time i.e. `O(1)`

.

## Why Hashing is Needed?

After storing a large amount of data, we need to perform various operations on these data. Lookups are inevitable for the datasets. Linear search and binary search perform lookups/search with time complexity of `O(n)`

and `O(log n)`

respectively. As the size of the dataset increases, these complexities also become significantly high which is not acceptable.

We need a technique that does not depend on the size of data. Hashing allows lookups to occur in constant time i.e. `O(1)`

.

## Hash Function

A hash function is used for mapping each element of a dataset to indexes in the table.

For more information on hash table, collision resolution techniques and hash functions, please visit Hash Table.