Optimal algorithms for the closest pair problem are often complex because they are derived from algorithms that solve more general problems, such as all-nearest-neighbors or computing the Voronoi diagram. The only known direct algorithm with optimal worst-case time complexity (in the algebraic decision tree model of computation) uses divide-and-conquer and involves a complicated merge step. We show how the two-dimensional closest pair problem is solved elegantly in asymptotically optimal time using a plane-sweep algorithm which is easier to understand and implement. We explain why sweeping generalizes easily, but not efficiently, to multi-dimensional closest pair problems.