Complexity Cheat Sheet

Data Structure Operations

Data StructureAccessSearchInsertDeleteSpace
ArrayO(1)O(n)O(n)O(n)O(n)
StackO(n)O(n)O(1)O(1)O(n)
QueueO(n)O(n)O(1)O(1)O(n)
Singly Linked ListO(n)O(n)O(1)O(1)O(n)
Doubly Linked ListO(n)O(n)O(1)O(1)O(n)
Hash TableO(1) avgO(1) avgO(1) avgO(n)
BST (balanced)O(log n)O(log n)O(log n)O(log n)O(n)
Min/Max HeapO(n)O(log n)O(log n)O(n)
TrieO(k)O(k)O(k)O(n·k)

k = length of key/word, n = number of elements

Sorting Algorithms

AlgorithmBestAverageWorstSpaceStable?
Bubble SortO(n)O(n²)O(n²)O(1)Yes
Selection SortO(n²)O(n²)O(n²)O(1)No
Insertion SortO(n)O(n²)O(n²)O(1)Yes
Merge SortO(n log n)O(n log n)O(n log n)O(n)Yes
Quick SortO(n log n)O(n log n)O(n²)O(log n)No
Heap SortO(n log n)O(n log n)O(n log n)O(1)No
Counting SortO(n+k)O(n+k)O(n+k)O(k)Yes
Radix SortO(nk)O(nk)O(nk)O(n+k)Yes

Graph Algorithms

AlgorithmTimeSpaceUse Case
BFSO(V+E)O(V)Shortest path (unweighted), level-order
DFSO(V+E)O(V)Cycle detection, topological sort, connected components
Dijkstra’sO((V+E) log V)O(V)Shortest path (weighted, no negative)
Bellman-FordO(V·E)O(V)Shortest path (negative weights)
Topological SortO(V+E)O(V)Dependency ordering (DAGs)
Union-FindO(α(n)) ≈ O(1)O(n)Connected components, cycle detection

Common Patterns — Time Complexity

PatternTypical ComplexityExample
Two PointersO(n)3Sum, Container with Most Water
Sliding WindowO(n)Best Time to Buy and Sell Stock
Binary SearchO(log n)Binary Search, Koko Eating Bananas
Hash Map lookupO(1) avgTwo Sum, Group Anagrams
DFS/BFS on gridO(m·n)Number of Islands, Max Area of Island
BacktrackingO(2ⁿ) or O(n!)Subsets, Permutations, N Queens
Dynamic ProgrammingO(n²) or O(n·m)Climbing Stairs, House Robber
Heap operationsO(n log k)Top K Frequent Elements, Kth Largest Element in an Array

Quick Reference

  • O(1) — hash lookups, array index, stack push/pop
  • O(log n) — binary search, balanced BST ops
  • O(n) — linear scan, two pointers, sliding window
  • O(n log n) — efficient sorting (merge, quick, heap)
  • O(n²) — nested loops, brute force pairs
  • O(2ⁿ) — subsets, recursion without memoization
  • O(n!) — permutations, brute force TSP