"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
Here's divide and conquer producing a speedup out of thin air. Computing a^n the obvious way is n−1 multiplications, O(n). But a^n = (a^(n/2))² — so compute a^(n/2) once, square it, and you've halved the exponent in one multiply. Recurse, and the exponent halves each step: O(log n) multiplications instead of O(n). Computing a^1000000 takes ~20 multiplications, not a million. This 'exponentiation by squaring' is everywhere — it's how cryptography raises numbers to gigantic powers, and how matrix-power tricks compute Fibonacci in O(log n). Same pattern as merge sort, aimed at arithmetic.
Pippa's Confession
a^n = (a^(n/2))² on the board and asked, "How many times can you halve a million?" About twenty. The loop did a million multiplications; squaring did twenty. 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.