big O

Big-O: denote the worst-case runtime of an algorithm.
- O(1) — Constant runtime — amazing
- O(log n) — Logarithmic runtime — good
- O(n) — Linear runtime — alright / good
- O(n log n) — Linearithmic runtime — bad
- O(n^2) — Quadratic runtime — TERRIBLE
- O(n^2) — Quadratic runtime — TERRIBLE
- O(2^n) — Exponential runtime — TERRIBLE
- O(n!) — Factorial runtime — TERRIBLE