cs2040s Cheatsheet
cs2040s Cheatsheet
sort best average worst stable? memory data structures assuming O(1) comparison cost orders of growth
bubble Ω(n) O(n2 ) O(n2 ) X O(1) data structure search insert n
selection Ω(n2 ) O(n2 ) O(n2 ) × O(1) sorted array O(log n) O(n) T (n) = 2T ( ) + O(n) ⇒ O(n log n)
insertion Ω(n) O(n2 ) O(n2 ) X O(1) 2
unsorted array O(n) O(1) n
merge Ω(n log n) O(n log n) O(n log n) X O(n) linked list O(n) O(1) T (n) = T ( ) + O(n) ⇒ O(n)
2
quick Ω(n log n) O(n log n) O(n2 ) × O(1) tree (kd/(a, b)/binary) O(log n) or O(h) O(log n) or O(h) n
heap Ω(n log n) O(n log n) O(n log n) × O(n) trie O(L) O(L) T (n) = 2T ( ) + O(1) ⇒ O(n)
2
searching heap O(log n) or O(h) O(log n) or O(h) n
sorting invariants search average T (n) = T ( ) + O(1) ⇒ O(log n)
dictionary O(log n) O(log n) 2
sort invariant (after k iterations) linear O(n) symbol table O(1) O(1) T (n) = 2T (n − 1) + O(1) ⇒ O(2n )
bubble largest k elements are sorted binary O(log n) chaining O(n) O(1) n
selection smallest k elements are sorted quickSelect O(n) open addressing 1
= O(1) O(1) T (n) = 2T ( ) + O(n log n) ⇒ O(n(log n)2 )
interval
1−α 2
insertion first k slots are sorted O(log n) priority queue (contains) O(1) O(log n) n √
merge given subarray is sorted all-overlaps O(k log n) skip list O(log n) O(log n)
T (n) = 2T ( ) + O(1) ⇒ O( n)
4
quick partition is in the right position 1D range O(k + log n)
2D range O(k + log2 n) orders of growth T (n) = T (n − c) + O(n) ⇒ O(n2 )
√
1 < log n < n < n < n log n < n2 < n3 < 2n < 22n
loga n < na < an < n! < nn