Data Structures & Sorting Cheatsheet

Data Structures Quick Reference

Structure / Algorithm Search (Avg) Insert (Avg) Delete (Avg) Search (Worst) Insert (Worst) Delete (Worst) Sort Time
Array O(n) O(n) O(n) O(n) O(n) O(n) O(n log n) (e.g., quicksort/mergesort)
Dynamic Array (list/vector) O(n) O(1)* O(n) O(n) O(n) O(n) O(n log n)
Singly Linked List O(n) O(1) O(1) O(n) O(1) O(1) O(n log n) (merge sort)
Doubly Linked List O(n) O(1) O(1) O(n) O(1) O(1) O(n log n) (merge sort)
Stack O(n) O(1) O(1) O(n) O(1) O(1) N/A
Queue O(n) O(1) O(1) O(n) O(1) O(1) N/A
Deque O(n) O(1) O(1) O(n) O(1) O(1) N/A
Binary Search Tree (BST) O(log n) O(log n) O(log n) O(n) O(n) O(n) O(n log n) (in-order traversal + rebalance if needed)
AVL Tree O(log n) O(log n) O(log n) O(log n) O(log n) O(log n) O(n log n)
Red-Black Tree O(log n) O(log n) O(log n) O(log n) O(log n) O(log n) O(n log n)
Heap (Min/Max) O(n) O(log n) O(log n) O(n) O(log n) O(log n) O(n log n) (heap sort)
Skip List O(log n) O(log n) O(log n) O(n) O(n) O(n) O(n log n)
Trie (Prefix Tree) O(k) O(k) O(k) O(k) O(k) O(k) O(n·k) (lexicographic traversal)
Hash Map / Dictionary (unordered) O(1) O(1) O(1) O(n) O(n) O(n) O(n log n) (need to extract keys/values + sort)
Tree Map / Ordered Map O(log n) O(log n) O(log n) O(log n) O(log n) O(log n) O(n log n)
Skip List Map O(log n) O(log n) O(log n) O(n) O(n) O(n) O(n log n)
Trie Map (string keys) O(k) O(k) O(k) O(k) O(k) O(k) O(n·k) (prefix order)
B-Tree / B+Tree O(log n) O(log n) O(log n) O(log n) O(log n) O(log n) O(n log n)

Sorting Algorithms Quick Reference

Algorithm Best Average Worst Stable? Notes
Quicksort O(n log n) O(n log n) O(n²) No Very fast in practice, worst-case rare with good pivots
Mergesort O(n log n) O(n log n) O(n log n) Yes Needs O(n) extra space
Heapsort O(n log n) O(n log n) O(n log n) No In-place, slower constants than quicksort
Insertion Sort O(n) O(n²) O(n²) Yes Good for small or nearly sorted data
Selection Sort O(n²) O(n²) O(n²) No Rarely used in practice
Bubble Sort O(n) O(n²) O(n²) Yes Educational, not practical
Counting Sort O(n + k) O(n + k) O(n + k) Yes For integers in a limited range
Radix Sort O(n·k) O(n·k) O(n·k) Yes k = digit/key length
Bucket Sort O(n + k) O(n + k) O(n²) Depends Works best with uniform distribution