0% found this document useful (0 votes)
182 views5 pages

Big O Cheat Sheet: Array Sorting Algorithms

The document provides big O time complexities for various sorting algorithms, data structures, graph algorithms, and Java collections. For sorting algorithms, it lists the best, average, and worst case time complexities of common algorithms like quicksort, mergesort, heapsort, etc. It also provides time complexities for operations like search, insertion, and deletion on different data structures including arrays, lists, trees, graphs and heaps. Finally, it lists the time complexity for common operations on Java collection classes.

Uploaded by

pravin patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
182 views5 pages

Big O Cheat Sheet: Array Sorting Algorithms

The document provides big O time complexities for various sorting algorithms, data structures, graph algorithms, and Java collections. For sorting algorithms, it lists the best, average, and worst case time complexities of common algorithms like quicksort, mergesort, heapsort, etc. It also provides time complexities for operations like search, insertion, and deletion on different data structures including arrays, lists, trees, graphs and heaps. Finally, it lists the time complexity for common operations on Java collection classes.

Uploaded by

pravin patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Codenza App http://codenza.

app

Big O Cheat Sheet

Array Sorting Algorithms:


O(1) < O( log(n) ) < O(n) < O( n log(n) ) < O ( n2 ) < O ( 2n ) < O ( n!)

Best Average Worst


Quick Sort Ω ( n log (n) ) Θ ( n log(n) ) O ( n2 )
Merge Sort Ω ( n log (n) ) Θ ( n log(n) ) O ( n log(n) )
Timsort Ω(n) Θ ( n log(n) ) O ( n log(n) )
Heap Sort Ω ( n log (n) ) Θ ( n log(n) ) O ( n log(n) )
Bubble Sort Ω(n) Θ ( n2 ) O ( n2 )
Insertion Sort Ω(n) Θ ( n2 ) O ( n2 )
Selection Sort Ω ( n2 ) Θ ( n2 ) O ( n2 )
Tree Sort Ω ( n log (n) ) Θ ( n log(n) ) O ( n2 )
Shell Sort Ω ( n log (n) ) Θ ( n ( log(n) )2) O ( n ( log(n) )2)
Bucket Sort Ω ( n+k ) Θ ( n+k ) O ( n2 )
Radix Sort Ω ( nk ) Θ ( nk ) O ( nk )
Counting Sort Ω ( n+k ) Θ ( n+k ) O ( n+k )
Cubesort Ω(n) Θ ( n log(n) ) O ( n log(n) )
Smooth Sort Ω(n) Θ ( n log(n) ) O ( n log(n) )
Tournament Sort - Θ ( n log(n) ) O ( n log(n) )
Stooge sort - - O( n log 3 /log 1.5 )
Gnome/Stupid sort Ω(n) Θ ( n2 ) O ( n2 )
Comb sort Ω ( n log (n) ) Θ ( n2/p2) O ( n2 )
Odd – Even sort Ω(n) - O ( n2 )

http://codenza.app Android | IOS 1 of 5


Codenza App http://codenza.app
Data Structures :
Having same average and worst case:
Access Search Insertion Deletion
Array Θ(1) Θ(n) Θ(n) Θ(n)
Stack Θ(n) Θ(n) Θ(1) Θ(1)
Queue Θ(n) Θ(n) Θ(1) Θ(1)
Singly-Linked List Θ(n) Θ(n) Θ(1) Θ(1)
Doubly-Linked List Θ(n) Θ(n) Θ(1) Θ(1)
B-Tree Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n))
Red-Black Tree Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n))
Splay Tree - Θ(log(n)) Θ(log(n)) Θ(log(n))
AVL Tree Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n))

Having different average and worst case:


Average Worst
Access Search Insert Delete Access Search Insert Delete
Skip List Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) 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)
KD Tree Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O (n) O (n) O (n) O (n)
Hash Table - Θ(1) Θ(1) Θ(1) - O (n) O (n) O (n)

Heap Data Structure:


S - Sorted, US - Unsorted , Binary Heap Heapify - O (n)
Find Max Extract Max Increase Key Insert Delete Merge
Linked List (S) O (1) O (1) O (n) O (n) O (1) O (m+n)
Linked List (US) O (n) O (n) O (1) O (1) O (1) O (1)
Binary Heap O (1) O ( log (n) ) O ( log (n) ) O ( log (n) ) O ( log (n) ) O (m+n)
Pairing Heap O (1) O ( log (n) ) O ( log (n) ) O (1) O ( log (n) ) O (1)
Binomial Heap O (1) O ( log (n) ) O ( log (n) ) O (1) O ( log (n) ) O ( log (n) )
Fibonacci Heap O (1) O ( log (n) ) O (1) O (1) O ( log (n) ) O (1)

http://codenza.app Android | IOS 2 of 5


Codenza App http://codenza.app

Graph Data Structure

Storage Add Vertex Add Edge Remove Vertex Remove Vertex Query

Adjacency list O (|V| + |E|) O (1) O (1) O (|V| + |E|) O (|E|) O (|V|)

Incidence list O (|V| + |E|) O (1) O (1) O (|E|) O (|E|) O (|E|)

Adjacency matrix O (|V|2) O (|V|2) O (1) O (|V|2) O (1) O (1)

Incidence matrix O (|V| . |E|) O (|V| . |E|) O (|V| . |E|) O (|V| . |E|) O (|V| . |E|) O (|E|)

Searching Algorithms:
Time Complexity
Linear Search O (n)
Binary Search O ( log (n) )
Jump Search O (√ n)
Interpolation Search O (log (log n))-Best | O (n)-Worst
Exponential Search O ( log (n) )
Sequential search O (n)
Depth-first search (DFS) O ( |V| + |E| )
Breadth-first search (BFS) O ( |V| + |E| )

Graph Algorithms
Average Worst
Dijkstra's algorithm O (|E| log |V|) O (|V|2)
A* search algorithm O (|E|) O (bd)
Prim's algorithm O (|E| log |V|) O (|V|2)
Bellman–Ford algorithm O (|E| ⋅ |V|) O (|E| ⋅ |V|)
Floyd-Warshall algorithm O (|V|3) O (|V|3)
Topological sort O (|V| + |E|) O (|V| + |E|)

http://codenza.app Android | IOS 3 of 5


Codenza App http://codenza.app

Time Complexity for Java Collections

List: A list is an ordered collection of elements.

Add Remove Get Contains Data Structure


ArrayList O (1) O (n) O (1) O (n) Array
LinkedList O (1) O (1) O (n) O (n) Linked List
CopyonWriteArrayList O (n) O (n) O (1) O (n) Array

Set: A collection that contains no duplicate elements.

Add Contains Next Data Structure


HashSet O(1) O(1) O(h/n) Hash Table
LinkedHashSet O(1) O(1) O(1) Hash Table + Linked List
EnumSet O(1) O(1) O(1) Bit Vector
TreeSet O(log n) O(log n) O(log n) Red-black tree
CopyonWriteArraySet O(n) O(n) O(1) Array

ConcurrentSkipList O(log n) O(log n) O(1) Skip List

Queue: A collection designed for holding elements prior to processing.

Offer Peak Poll Size Data Structure


PriorityQueue O(log n ) O(1) O(log n) O(1) Priority Heap
LinkedList O(1) O(1) O(1) O(1) Array
ArrayDequeue O(1) O(1) O(1) O(1) Linked List
ConcurrentLinkedQueue O(1) O(1) O(1) O(n) Linked List
ArrayBlockingQueue O(1) O(1) O(1) O(1) Array
PriorirityBlockingQueue O(log n) O(1) O(log n) O(1) Priority Heap
SynchronousQueue O(1) O(1) O(1) O(1) None
DelayQueue O(log n) O(1) O(log n) O(1) Priority Heap
LinkedBlockingQueue O(1) O(1) O(1) O(1) Linked List

http://codenza.app Android | IOS 4 of 5


Codenza App http://codenza.app

Map: An object that maps keys to values. 



A map cannot duplicate keys; each key can map to at most one value.

Get ContainsKey Next Data Structure


HashMap O(1) O(1) O(h / n) Hash Table
LinkedHashMap O(1) O(1) O(1) Hash Table + Linked List
IdentityHashMap O(1) O(1) O(h / n) Array
WeakHashMap O(1) O(1) O(h / n) Hash Table
EnumMap O(1) O(1) O(1) Array
TreeMap O(log n) O(log n) O(log n) Red-black tree
ConcurrentHashMap O(1) O(1) O(h / n) Hash Tables
ConcurrentSkipListMap O(log n) O(log n) O(1) Skip List

http://codenza.app Android | IOS 5 of 5

You might also like