0
0
Data-structures-theoryHow-ToBeginner ยท 3 min read

Time Complexity of Hash Table Operations Explained

The average time complexity of hash table operations such as insert, search, and delete is O(1), meaning they run in constant time. However, in the worst case, due to collisions, these operations can degrade to O(n), where n is the number of elements in the table.
๐Ÿ“

Syntax

A hash table stores key-value pairs and supports three main operations:

  • Insert: Add a key and its value.
  • Search: Find the value by key.
  • Delete: Remove the key and its value.

These operations use a hash function to find the index where the key-value pair is stored.

python
hash_table = {}

# Insert
hash_table[key] = value

# Search
value = hash_table.get(key)

# Delete
del hash_table[key]
๐Ÿ’ป

Example

This example shows how to insert, search, and delete items in a hash table (Python dictionary) and explains their time complexity.

python
hash_table = {}

# Insert items
hash_table['apple'] = 5
hash_table['banana'] = 3

# Search for an item
print('Value for apple:', hash_table.get('apple'))

# Delete an item
del hash_table['banana']

# Try to search deleted item
print('Value for banana:', hash_table.get('banana'))
Output
Value for apple: 5 Value for banana: None
โš ๏ธ

Common Pitfalls

Hash tables usually have constant time operations, but some issues can cause slower performance:

  • Collisions: When two keys hash to the same index, the table handles them by chaining or open addressing, which can slow down operations.
  • Poor hash functions: If the hash function distributes keys unevenly, many collisions occur.
  • High load factor: When the table is too full, operations slow down; resizing the table helps.

Always choose a good hash function and resize the table to keep operations fast.

python
hash_table = {}

# Poor practice: using a bad hash function simulation
# For example, all keys map to the same bucket (simulated)
keys = ['a', 'b', 'c', 'd']
for key in keys:
    # Simulate collision by using same key
    hash_table['same_key'] = hash_table.get('same_key', 0) + 1

print(hash_table)
Output
{'same_key': 4}
๐Ÿ“Š

Quick Reference

OperationAverage Time ComplexityWorst-case Time Complexity
InsertO(1)O(n)
SearchO(1)O(n)
DeleteO(1)O(n)
โœ…

Key Takeaways

Hash table operations usually run in constant time O(1) on average.
Worst-case time complexity can be O(n) due to collisions.
Good hash functions and resizing reduce collisions and keep operations fast.
Insert, search, and delete share the same time complexity characteristics.
Understanding collisions helps avoid performance pitfalls.