Reason about how algorithms scale, with interactive comparisons.
A non-comparison sort: drop each value into a bin for its value, then read the bins in order. O(n + k) when the value range k is small.
Sort multi-digit numbers without comparisons: bucket by one digit at a time, least significant first, using a stable counting pass each round. O(d·(n + k)).
Scatter values into range buckets, sort each bucket, then gather in order. O(n) average when the data is spread evenly; O(n²) worst case.
Two sorts, one set of axes. Slide the input size n and watch O(n²) pull away from O(n log n) — the same comparison made concrete, with live counts.
How an algorithm’s cost grows with input size — the common complexity classes on one set of axes, from O(1) to O(2ⁿ).
Why no comparison sort can beat O(n log n): a sort is a tree of yes/no questions, and telling n! orderings apart needs at least log₂(n!) of them.