Grover's Search
You are handed a phone book with a million names in no order at all and told to find the
one person whose number is 867\text{-}5309. Classically there is no trick:
you must read entries one by one, and on average you will squint at half a million of them before you
get lucky. Grover's algorithm is the quantum answer, and it is almost eerie — it finds
that one marked entry among N after only about \sqrt N
queries. For a million entries that is roughly a thousand looks instead of a million: a
quadratic speedup that works on any unstructured search, with no pattern to
exploit. This page shows how it turns a needle-in-a-haystack into a short, deliberate rotation.
The problem: search with no structure
We have N = 2^n items, labelled by the n-bit
strings x \in \{0,1\}^n. Exactly one of them (for now) is the marked
item w we are looking for, and all we have to recognise it is a yes/no test
f(x) = \begin{cases} 1 & x = w \\ 0 & x \neq w \end{cases}
The list has no structure — it is not sorted, there is no hash, no index. A classical
searcher can do nothing cleverer than try items until f returns
1: N/2 queries on average and
N in the worst case, i.e. O(N). Grover's algorithm
gets the same answer, with high probability, in only O(\sqrt N) queries.
The oracle marks by flipping a phase
As always in the query model, the test f is delivered as a reversible
oracle.
Grover uses the phase form: it leaves every basis state alone except that it stamps a
minus sign on the marked one,
U_f\,|x\rangle = (-1)^{f(x)}\,|x\rangle \quad\Longrightarrow\quad U_f\,|w\rangle = -\,|w\rangle,\;\; U_f\,|x\rangle = |x\rangle \text{ for } x \neq w.
On its own that sign is invisible — a
phase
you can never measure directly. The genius of Grover is a second operation that converts that
hidden sign into a large, measurable amplitude.
The algorithm: superpose, then amplify
The recipe is short:
- Superpose. Apply a
Hadamard
layer H^{\otimes n} to |0\cdots0\rangle to build
the uniform superposition |\psi\rangle = \frac{1}{\sqrt N}\sum_{x=0}^{N-1} |x\rangle,
in which every item — including w — has the same amplitude
1/\sqrt N.
- Iterate the Grover step about \tfrac{\pi}{4}\sqrt N
times. Each iteration is two moves:
- the oracle U_f — flips the phase of the marked
amplitude;
- the diffusion operator
D = 2\,|\psi\rangle\langle\psi| - I — inversion about the mean:
it replaces every amplitude a_x with
2\bar a - a_x, reflecting it through the average amplitude
\bar a.
Together, the oracle pushes the marked amplitude below the average, and the diffusion's reflection
about that average lifts it far above the rest — a little more each pass.
- Measure. After the right number of iterations, the marked item's amplitude is
close to 1, so a single measurement returns w
with high probability.
The geometric picture: a rotation toward the answer
Here is the idea that makes Grover feel inevitable. Split the world into two directions: the marked
state |w\rangle = |\text{marked}\rangle, and the even mix of everything else
|\text{unmarked}\rangle. The whole algorithm lives in the 2D plane
these two span. The starting superposition |\psi\rangle sits at a small angle
\theta above the unmarked axis, where
\sin\theta = \frac{1}{\sqrt N}.
The oracle is a reflection across the unmarked axis; the diffusion is a reflection across
|\psi\rangle. Two reflections make a rotation, and the maths
works out to a clean 2\theta turn toward
|\text{marked}\rangle on every iteration. Step the figure through one full
Grover iteration:
So the state marches toward |\text{marked}\rangle in steps of
2\theta. It needs to cover the angle from \theta up
to 90^\circ, so the number of iterations is about
\dfrac{\pi/2 - \theta}{2\theta} \approx \dfrac{\pi}{4}\sqrt N (using
\theta \approx 1/\sqrt N for large N). That
\sqrt N is the whole speedup, laid bare as geometry.
Worked example 1: N = 4 lands on the nose
Take four items, one marked, so the amplitudes start uniform at
1/\sqrt 4 = 1/2 each. Watch a single Grover iteration by
tracking the four amplitudes.
After the oracle (flip the marked amplitude's sign):
\big(\tfrac12,\ \tfrac12,\ \tfrac12,\ \tfrac12\big) \;\longrightarrow\; \big(\underbrace{-\tfrac12}_{\text{marked}},\ \tfrac12,\ \tfrac12,\ \tfrac12\big).
After diffusion (inversion about the mean). The mean is
\bar a = \tfrac14\!\left(-\tfrac12 + \tfrac12 + \tfrac12 + \tfrac12\right) = \tfrac14,
and each amplitude becomes 2\bar a - a_x = \tfrac12 - a_x:
\text{marked: } \tfrac12 - (-\tfrac12) = 1, \qquad \text{others: } \tfrac12 - \tfrac12 = 0.
The marked amplitude is now 1 and every other is 0:
measuring returns the marked item with certainty, after just one query. Geometrically
\sin\theta = 1/\sqrt 4 = 1/2 gives \theta = 30^\circ,
so one 2\theta = 60^\circ rotation carries
|\psi\rangle from 30^\circ to exactly
90^\circ — dead on |\text{marked}\rangle.
Worked example 2: counting iterations for big N
For large N the angle \theta \approx 1/\sqrt N is
tiny, and the optimal iteration count is
R \approx \frac{\pi}{4}\sqrt N.
Search a million items (N = 10^6): \sqrt N = 1000,
so R \approx \tfrac{\pi}{4}\cdot 1000 \approx 785 iterations — against roughly
500{,}000 classical checks on average. A quadratic gap, appearing on any
unstructured haystack.
If there are k marked items instead of one, the starting angle grows to
\sin\theta = \sqrt{k/N}, each rotation is larger, and you reach a marked
state in only
R \approx \frac{\pi}{4}\sqrt{\frac{N}{k}}
iterations — more solutions make the search proportionally faster. (One subtlety: if you don't know
k in advance you must estimate it, or use a randomised stopping schedule, so
you don't overshoot — which is exactly the trap of the next section.)
Picture the N amplitudes as voices in a choir, all singing at the same faint
volume 1/\sqrt N. The oracle does something almost trivial: it tells the one
marked voice to sing in antiphase — same volume, opposite sign. Nobody can hear a sign. Then
diffusion performs its trick: it reflects every voice about the choir's average volume. Because
the marked voice dipped below the average while everyone else sits above it, that reflection flings the
marked voice up high and nudges the rest down a touch. Repeat, and the marked whisper swells, pass by
pass, into the loudest voice in the room — until a single measurement is overwhelmingly likely to pick
it out. This move — mark a phase, then reflect about the mean to grow its amplitude — is so useful it has
its own name, amplitude amplification, and
Grover's search is its most famous special case.
The rotation picture carries a warning most beginners miss. Each iteration turns the state by a
fixed 2\theta — it does not stop when it reaches
|\text{marked}\rangle. Keep going and you rotate straight past the
target, and the success probability falls again. The whole process is
periodic: run twice as many iterations as you should and you can end up almost
less likely to find the answer than when you started. So you must stop at roughly
\tfrac{\pi}{4}\sqrt N — Grover is a place where overcooking genuinely
ruins the dish.
Second, keep the speedup in proportion. It is quadratic, not exponential:
O(\sqrt N) versus O(N). Impressive and broadly
applicable, but not the exponential leap of Shor's factoring. And that square root is
optimal — no quantum algorithm can search an unstructured list of
N items in fewer than \Omega(\sqrt N) queries, a
fact proved with the
quantum query lower bounds.
Grover is not merely good; it is the best possible.
- Problem. Find a marked item among N = 2^n unstructured
items, recognisable only by an oracle. Classical: O(N) queries. Grover:
O(\sqrt N) — a quadratic speedup.
- Oracle. A phase oracle marks the solution by flipping its sign,
U_f|x\rangle = (-1)^{f(x)}|x\rangle.
- Iteration = oracle + diffusion. Start in the uniform superposition
H^{\otimes n}|0\rangle, then repeat: phase-flip with
U_f, then apply diffusion
D = 2|\psi\rangle\langle\psi| - I (inversion about the mean).
- Geometry. The state lives in the plane of
|\text{marked}\rangle and |\text{unmarked}\rangle;
each iteration rotates it by 2\theta toward
|\text{marked}\rangle, with \sin\theta = 1/\sqrt N.
- Count. About \tfrac{\pi}{4}\sqrt N iterations (or
\tfrac{\pi}{4}\sqrt{N/k} for k marked items),
then measure.
- Watch out. Over-rotating lowers the success probability — it is periodic,
so stop on time. The \sqrt N speedup is quadratic and provably optimal.