# Hash Tables

### Introduction and Summary

We've seen searches that allow you to look through data in O(n) time, and searches that allow you to look through data in O(logn) time, but imagine a way to find exactly what you want in O(1) time. Think it's not possible? Think again! Hash tables allow the storage and retrieval of data in an average time of O(1) .

At its most basic level, a hash table data structure is just an array. Data is stored into this array at specific indices designated by a hash function. A hash function is a mapping between the set of input data and a set of integers.

With hash tables, there always exists the possibility that two data elements will hash to the same integer value. When this happens, a collision results (two data members try to occupy the same place in the hash table array), and methods have been devised to deal with such situations. In this guide, we will cover two methods, linear probing and separate chaining, focusing on the latter.

Hashing has uses elsewhere besides in hash tables. Certain string matching algorithms, for example Rabin-Karp, take advantage of hashing to do string searching in linear time as opposed to the quadratic time of the normal brute-force string searching algorithm.

## Take a Study Break

### What's your Pretty Little Liars name?

Take this quiz to find out!

### Which young actress just got married?

Click to find out!

### Cat bearding WINS THE INTERNET

Have you seen this yet?

### Scary movies with funny posters

These. Are. Hilarious.

### Geeky Actors: Then and Now

Travel back in time!

### Villains We Want These Actresses to Play

From super cute to super bad!

### 10 Movies Better Than Their Books

What do you think?