Skip to content
Jared's Notes Jared's Notes
Go back

Algorithms Reference

Sorting / Searching

Algorithm Time (Best) Time (Average) Time (Worst) Space (Worst)
Linear Search Ω(1) Θ(n) O(n) O(1)
Binary Search Ω(1) Θ(log(n)) O(log(n)) O(1)
QuickSort Ω(n log(n)) Θ(n log(n)) O(n^2) O(log(n))
Mergesort Ω(n log(n)) Θ(n log(n)) O(n log(n)) O(n)
Timsort Ω(n) Θ(n log(n)) O(n log(n)) O(n)
Heapsort Ω(n log(n)) Θ(n log(n)) O(n log(n)) O(1)
Bubble Sort Ω(n) Θ(n^2) O(n^2) O(1)
Insertion Sort Ω(n) Θ(n^2) O(n^2) O(1)
Selection Sort Ω(n^2) Θ(n^2) O(n^2) O(1)
Tree Sort Ω(n log(n)) Θ(n log(n)) O(n^2) O(n)
Shell Sort Ω(n log(n)) Θ(n(log(n))^2) O(n(log(n))^2) O(1)
Bucket Sort Ω(n+k) Θ(n+k) O(n^2) O(n)
Radix Sort Ω(nk) Θ(nk) O(nk) O(n+k)
Counting Sort Ω(n+k) Θ(n+k) O(n+k) O(k)
Cubesort Ω(n) Θ(n log(n)) O(n log(n)) O(n)

Data Structures

Average Worst
Structure Access Search Insert Delete Access Search Insert/Delete
Array O(1) O(n) O(n) O(n) O(1) O(n) O(n)
Stack O(n) O(n) O(1) O(1) O(n) O(n) O(1)
Queue O(n) O(n) O(1) O(1) O(n) O(n) O(1)
Singly-Linked List O(n) O(n) O(1) O(1) O(n) O(n) O(1)
Doubly-Linked List O(n) O(n) O(1) O(1) O(n) O(n) O(1)
Skip List O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n) O(n) O(n)
Hash Table O(1) O(1) O(1) O(n) O(n)
BST O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n) O(n) O(n)
Cartesian Tree O(log(n)) O(log(n)) O(log(n)) O(n) O(n)
B-Tree O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n))
Red-Black Tree O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n))
Splay Tree O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n))
AVL Tree O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n))
KD Tree O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n) O(n) O(n)

Share this post:

Previous Post
C# Async / Await State Machine