Professional Documents
Culture Documents
Big-O Algorithm Complexity Cheat Sheet
Big-O Algorithm Complexity Cheat Sheet
Searching
Algorithm
Data Structure
Time Complexity
Graph of |V|
vertices and |E|
edges
Graph of |V|
vertices and |E|
edges
Sorted array of n
elements
Array
O(|E| + |V|)
O(|V|)
O(|E| + |V|)
O(|V|)
O(log(n))
O(log(n))
O(1)
O(n)
O(n)
O(1)
O((|V| + |E|)
log |V|)
O((|V| + |E|)
log |V|)
O(|V|)
O(|V|^2)
O(|V|^2)
O(|V|)
O(|V||E|)
O(|V||E|)
O(|V|)
Average
Breadth First
Search (BFS)
Binary search
Linear (Brute
Force)
Shortest path by
Dijkstra,
using a Min-heap
as priority queue
Shortest path by
Dijkstra,
using an unsorted
array as priority
queue
Shortest path by
Bellman-Ford
Worst
Space
Complexity
Worst
Sorting
Algorithm
Data
Structure
Time Complexity
Best
Quicksort
Array
Mergesort
Array
Heapsort
Array
Bubble Sort
Insertion
Sort
Select Sort
Bucket Sort
Radix Sort
Array
Array
O(n
log(n))
O(n
log(n))
O(n
log(n))
O(n)
O(n)
Array
Array
Array
O(n^2)
O(n+k)
O(nk)
Average
Worst
O(n
log(n))
O(n
log(n))
O(n
log(n))
O(n^2)
O(n^2)
O(n^2)
O(n)
O(n
log(n))
O(n
log(n))
O(n^2)
O(n^2)
O(n)
O(n^2)
O(n+k)
O(nk)
O(n^2)
O(n^2)
O(nk)
O(1)
O(nk)
O(n+k)
O(1)
O(1)
O(1)
Data Structures
Data Structure
Time Complexity
Indexing
Average
Search
Insertion
Deletion
Basic Array
Dynamic Array
Singly-Linked
List
Doubly-Linked
List
Skip List
O(1)
O(1)
O(n)
O(n)
O(n)
O(n)
O(n)
O(1)
O(n)
O(n)
O(log(n))
Hash Table
Binary Search
Tree
Cartresian Tree
B-Tree
Red-Black Tree
Splay Tree
AVL Tree
Indexing
Space
Complex
ity
Worst
Worst
Search
Insertion
Deletion
O(n)
O(n)
O(n)
O(n)
O(1)
O(1)
O(1)
O(n)
O(n)
O(1)
O(n)
O(1)
O(n)
O(n)
O(n)
O(1)
O(1)
O(n)
O(n)
O(1)
O(1)
O(n)
O(log(n))
O(log(n))
O(log(n))
O(n)
O(n)
O(n)
O(n)
O(log(n))
O(1)
O(log(n))
O(1)
O(log(n))
O(1)
O(log(n))
O(n)
O(n)
O(n)
O(n)
O(n)
O(n)
O(n)
O(n
log(n))
O(n)
O(n)
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
O(n)
O(n)
O(n)
O(n)
Heaps
Heaps
Linked
List
(sorted)
Linked
List
(unsorted)
Binary
Heap
Binomial
Heap
Fibonacci
Heap
Time Complexity
Increase
Insert
Key
Heapify
Find Max
Extract
Max
Delete
O(1)
O(1)
O(n)
O(n)
O(1)
O(m+n)
O(n)
O(n)
O(1)
O(1)
O(1)
O(1)
O(n)
O(1)
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(m+n)
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(1)
O(log(n))*
O(1)*
O(1)
O(log(n))*
O(1)
Graphs
Node / Edge
Management
Adjacency list
Incidence list
Adjacency
matrix
Incidence
matrix
Storage
Add
Vertex
Add
Edge
O(|V|+|E|)
O(1)
O(1)
O(|V|+|E|)
O(|V|^2)
O(1)
O(|V|^2)
O(|V|
|E|)
O(|V|
|E|)
Remove
Vertex
Remove
Edge
Query
O(|E|)
O(|V|)
O(1)
O(1)
O(|V| +
|E|)
O(|E|)
O(|V|^2)
O(|E|)
O(1)
O(|E|)
O(1)
O(|V|
|E|)
O(|V|
|E|)
O(|V|
|E|)
O(|E|)
Merge