"Divide and conquer is recursion with ambition: break a hard problem into independent smaller ones, solve each, and stitch the results. When the breaking and stitching are cheap, this turns brutal problems gentle."
The Three-Beat Pattern
You've already met divide and conquer in merge sort, quicksort, and binary search — now name the shared shape. A divide-and-conquer algorithm: divides the problem into smaller independent subproblems, conquers each by recursion, and combines their answers into the full solution. The art is in the divide and combine steps; the conquer is just 'recurse and trust' (the leap of faith). Binary search is the minimal case — it divides into two but only ever recurses into one half, which is exactly why it's O(log n).
What Determines the Cost
From the recursion-tree lesson: the cost depends on three knobs — how many subproblems each call spawns (branching), how much smaller they get (shrink rate), and the work to divide and combine. Merge sort: 2 subproblems, each half-size, O(n) to combine → O(n log n). Binary search: effectively 1 subproblem, half-size, O(1) combine → O(log n). The master theorem turns this into a formula, but the intuition is enough: cheap combine + good shrinking = a fast algorithm. When the combine step costs more than brute force would, divide and conquer doesn't help — so the cleverness lives in finding a cheap way to stitch subanswers together.
A Clean Win: Fast Exponentiation
For a non-negative integer exponent n, exponentiation by squaring halves n at every step, so it uses O(log n) recursive levels and a constant number of multiplications per level. a^1,000,000 needs about twenty halving levels, plus the extra multiplies required at odd exponents; it is not exactly twenty multiplications. Supporting negative exponents requires a separate reciprocal contract, including what to do with zero.
Pippa's Confession
a^n = (a^(n/2))² on the board and asked, "How many times can you halve a million?" About twenty halving levels. The loop did a million-scale amount of work; squaring needed those levels plus the multiplies on odd steps. I'd seen divide-and-conquer as 'the thing sorting does,' but it's a general lever: anytime a problem of size n can be rebuilt cheaply from a problem of size n/2, you can often trade O(n) for O(log n). Now I look for that halving everywhere.