A mathematical notation that describes the upper bound of an algorithm's growth rate as input size increases. Written as O(f(n)), where f(n) describes the growth function. Common complexities include O(1), O(log n), O(n), O(n log n), and O(n^2). (Ch. 7, 28, Appendix A)