Imagine scattering a handful of seed points across a map. Each point "owns" the region of the map closest to it — no matter where you stand, you belong to the territory of whichever seed is nearest. Stitch those territories together and you get a Voronoi diagram: one of the most useful structures in computational geometry.
Voronoi diagrams show up everywhere — mapping the nearest hospital in a city, routing signals in a sensor network, detecting collisions in a physics engine, or reconstructing surfaces from 3D scan data. Given n seed points, how quickly can we build this diagram?
A naive approach tests every point on the plane against all n seeds: impractical. A smarter brute-force builds each region one boundary edge at a time: . But in 1987, Steven Fortune published an algorithm that does it in — optimal, because just sorting the seeds already costs that much. His trick is a deceptively simple idea: sweep a line across the plane.
Fortune's algorithm is classified as solved: it achieves the proven lower-bound complexity of Θ(n log n) for Voronoi construction in the algebraic decision-tree model. No algorithm can do better in the worst case.
Comments
Loading comments...