Know Thy Complexities!
Hi there! This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science. When preparing for technical interviews in the past, I found myself spending hours crawling the internet putting together the best, average, and worst case complexities for search and sorting algorithms so that I wouldn't be stumped when asked about them. Over the last few years, I've interviewed at several Silicon Valley startups, and also some bigger companies, like Google, Facebook, Yahoo, LinkedIn, and Uber, and each time that I prepared for an interview, I thought to myself "Why hasn't someone created a nice Big-O cheat sheet?". So, to save all of you fine folks a ton of time, I went ahead and created one. Enjoy! - Eric
Check out El Grapho, a graph data visualization library that supports millions of nodes and edges
Big-O Complexity Chart
Horrible
Bad
Fair
Good
Excellent
O(log n), O(1)
O(n)
O(n log n)
O(n^2)
O(2^n)
O(n!)
Operations
Elements
Common Data Structure Operations
Data Structure
Time Complexity
Space Complexity
Average
Worst
Worst
Access
Search
Insertion
Deletion
Access
Search
Insertion
Deletion
Array
Θ(1)
Θ(n)
Θ(n)
Θ(n)
O(1)
O(n)
O(n)
O(n)
O(n)
Stack
Θ(n)
Θ(n)
Θ(1)
Θ(1)
O(n)
O(n)
O(1)
O(1)
O(n)
Queue
Θ(n)
Θ(n)
Θ(1)
Θ(1)
O(n)
O(n)
O(1)
O(1)
O(n)
Singly-Linked List
Θ(n)
Θ(n)
Θ(1)
Θ(1)
O(n)
O(n)
O(1)
O(1)
O(n)
Doubly-Linked List
Θ(n)
Θ(n)
Θ(1)
Θ(1)
O(n)
O(n)
O(1)
O(1)
O(n)
Skip List
Θ(log(n))
Θ(log(n))
Θ(log(n))
Θ(log(n))
O(n)
O(n)
O(n)
O(n)
O(n log(n))
Hash Table
N/A
Θ(1)
Θ(1)
Θ(1)
N/A
O(n)
O(n)
O(n)
O(n)
Binary Search Tree
Θ(log(n))
Θ(log(n))
Θ(log(n))
Θ(log(n))
O(n)
O(n)
O(n)
O(n)
O(n)
Cartesian Tree
N/A
Θ(log(n))
Θ(log(n))
Θ(log(n))
N/A
O(n)
O(n)
O(n)
O(n)
B-Tree
Θ(log(n))
Θ(log(n))
Θ(log(n))
Θ(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
Red-Black Tree
Θ(log(n))
Θ(log(n))
Θ(log(n))
Θ(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
Splay Tree
N/A
Θ(log(n))
Θ(log(n))
Θ(log(n))
N/A
O(log(n))
O(log(n))
O(log(n))
O(n)
AVL Tree
Θ(log(n))
Θ(log(n))
Θ(log(n))
Θ(log(n))
O(log(n))
O(log(n))
O(log(n))
O(log(n))
O(n)
KD Tree
Θ(log(n))
Θ(log(n))
Θ(log(n))
Θ(log(n))
O(n)
O(n)
O(n)
O(n)
O(n)
Array Sorting Algorithms
Learn More
Get the Official Big-O Cheat Sheet Poster
Contributors
Eric Rowell
Quentin Pleple
Michael Abed
Nick Dizazzo
Adam Forsyth
Felix Zhu
Jay Engineer
Josh Davis
Nodir Turakulov
Jennifer Hamon
David Dorfman
Bart Massey
Ray Pereda
Si Pham
Mike Davis
mcverry
Max Hoffmann
Bahador Saket
Damon Davison
Alvin Wan
Alan Briolat
Drew Hannay
Andrew Rasmussen
Dennis Tsang
Vinnie Magro
Adam Arold
Alejandro Ramirez
Aneel Nazareth
Rahul Chowdhury
Jonathan McElroy
steven41292
Brandon Amos
Joel Friedly
Casper Van Gheluwe
Eric Lefevre-Ardant
Oleg
Renfred Harper
Piper Chester
Miguel Amigot
Apurva K
Matthew Daronco
Yun-Cheng Lin
Clay Tyler
Orhan Can Ozalp
Ayman Singh
David Morton
Aurelien Ooms
Sebastian Paaske Torholm
Koushik Krishnan
Drew Bailey
Robert Burke
Make this Page Better
Edit these tables!