Complexity Reference

Big-O notation reference for data structures, algorithms, and system design components.

Array / Dynamic Array

Contiguous memory, index-based access. ArrayList (Java), list (Python), vector (C++).

OperationAverageWorstSpaceNotes
Access by indexO(1)O(1)O(n)Direct address calculation
Search (unsorted)O(n)O(n)O(1)Linear scan
Search (sorted)O(log n)O(log n)O(1)Binary search
Insert at endO(1)*O(n)O(n)*Amortized, worst case resizes
Insert at beginningO(n)O(n)O(n)Must shift all elements
DeleteO(n)O(n)O(n)Must shift elements

Hash Table

Key-value pairs with O(1) average access. HashMap (Java), dict (Python), object/Map (JS).

OperationAverageWorstSpaceNotes
GetO(1)O(n)O(n)O(n) with hash collisions
PutO(1)O(n)O(n)Amortized with resizing
DeleteO(1)O(n)O(n)O(n) with collisions
ContainsO(1)O(n)O(n)Hash lookup

Balanced BST (Red-Black / AVL)

Self-balancing binary search tree. TreeMap (Java), std::map (C++). Ordered operations.

OperationAverageWorstSpaceNotes
SearchO(log n)O(log n)O(n)Always balanced
InsertO(log n)O(log n)O(n)Rebalance after insert
DeleteO(log n)O(log n)O(n)Rebalance after delete
Min / MaxO(log n)O(log n)O(1)Traverse to leaf
Range queryO(log n + k)O(log n + k)O(k)k = results count

Heap (Priority Queue)

Complete binary tree. Min-heap or max-heap. PriorityQueue (Java), heapq (Python).

OperationAverageWorstSpaceNotes
Find min/maxO(1)O(1)O(n)Always at root
InsertO(log n)O(log n)O(n)Bubble up
Extract min/maxO(log n)O(log n)O(n)Bubble down
Build heapO(n)O(n)O(n)Bottom-up heapify

Trie (Prefix Tree)

Tree for string storage. Each node represents a character. Used for autocomplete.

OperationAverageWorstSpaceNotes
Search wordO(m)O(m)O(n*m)m = word length
Insert wordO(m)O(m)O(n*m)m = word length
Prefix searchO(p + k)O(p + k)O(n*m)p = prefix len, k = results

Bloom Filter

Probabilistic set membership. Space-efficient. False positives possible, no false negatives.

OperationAverageWorstSpaceNotes
AddO(k)O(k)O(m)k = hash functions
Check membershipO(k)O(k)O(m)May have false positives
DeleteN/AN/A-Not supported (use counting BF)

Big-O at a Glance

O(1)
Constant
Hash lookup
O(log n)
Logarithmic
Binary search
O(n)
Linear
Array scan
O(n log n)
Linearithmic
Merge sort
O(n²)
Quadratic
Nested loops
O(2ⁿ)
Exponential
Subsets
O(n!)
Factorial
Permutations
O(1) amort
Amortized
Dynamic array