You are on page 1of 2

Know The Complexities!

The Ultimate Cheat-Sheet for Design

and Analysis of Computer Algorithms


Extract Max O(1) O(n) O(log(n)) O(log(n)) O(log(n))* Increase Key O(n) O(1) O(log(n)) O(log(n)) O(1)* Insert O(n) O(1) O(log(n)) O(log(n)) O(1) Delete O(1) O(1) O(log(n)) O(log(n)) O(log(n))* Merge O(m+n) O(1) O(m+n) O(log(n)) O(1)

Heaps
Heaps Linked List (sorted) Linked List (unsorted) Binary Heap Binomial Heap Fibonacci Heap Time Complexity Heapify Find Max O(1) O(n) O(n) O(1) O(log(n)) O(1)

Graphs
Node / Edge Management Adjacency list Incidence list Adjacency matrix Incidence matrix Storage O(|V|+|E|) O(|V|+|E|) O(|V|^2) O(|V| |E|) Add Vertex O(1) O(1) O(|V|^2) O(|V| |E|) Add Edge O(1) O(1) O(1) O(|V| |E|) Remove Vertex O(|V| + |E|) O(|E|) O(|V|^2) O(|V| |E|) Remove Edge O(|E|) O(|E|) O(1) O(|V| |E|) Query O(|V|) O(|E|) O(1) O(|E|)

Searching
Algorithm Depth First Search (DFS) 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

Data Structure Graph of |V| vertices and |E| edges Graph of |V| vertices and |E| edges Sorted array of n elements Array Graph with |V| vertices and |E| edges Graph with |V| vertices and |E| edges Graph with |V| vertices and |E| edges

Time Complexity Average O(log(n)) O(n) O((|V| + |E|) log |V|) O(|V|^2) O(|V||E|)

Worst O(|E| + |V|) O(|E| + |V|) O(log(n)) O(n) O((|V| + |E|) log |V|) O(|V|^2) O(|V||E|) Compiled By Ref

Space Complexity Worst O(|V|) O(|V|) O(1) O(1) O(|V|) O(|V|) O(|V|) : JITENDRA KUMAR PATEL. : http://bigocheatsheet.com/

Shortest path by Bellman-Ford

Sorting
Algorithm Data Time Complexity Structure Best Array O(n log(n)) Array O(n log(n)) Array O(n log(n)) Array O(n) Array O(n) Array O(n^2) Array O(n+k) Array O(nk) Worst Case Auxiliary Space Complexity Average O(n log(n)) O(n log(n)) O(n log(n)) O(n^2) O(n^2) O(n^2) O(n+k) O(nk) Worst O(n^2) O(n log(n)) O(n log(n)) O(n^2) O(n^2) O(n^2) O(n^2) O(nk) Worst O(n) O(n) O(1) O(1) O(1) O(1) O(nk) O(n+k)

Quicksort Mergesort Heapsort Bubble Sort Insertion Sort Select Sort Bucket Sort Radix Sort

Data Structures
Data Structure Time Complexity Average Indexing Search O(1) O(n) O(1) O(n) O(n) O(n) O(n) O(n) O(log(n)) O(log(n)) O(1) 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)) Insertion O(n) O(1) O(1) O(log(n)) O(1) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) Deletion O(n) O(1) O(1) O(log(n)) O(1) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) Worst Indexing O(1) O(1) O(n) O(n) O(n) O(n) O(log(n)) O(log(n)) O(log(n)) Space Complexity Worst Search O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(log(n)) O(log(n)) O(log(n)) O(log(n)) Insertion O(n) O(1) O(1) O(n) O(n) O(n) O(n) O(log(n)) O(log(n)) O(log(n)) O(log(n)) Deletion O(n) O(1) O(1) O(n) O(n) O(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 log(n)) O(n) O(n) O(n) O(n) O(n) O(n) O(n)

Basic Array Dynamic Array Singly-Linked List Doubly-Linked List Skip List Hash Table Binary Search Tree Cartresian Tree B-Tree Red-Black Tree Splay Tree AVL Tree

Compiled By Ref

: JITENDRA KUMAR PATEL. : http://bigocheatsheet.com/

You might also like