ClosestPair(P):
sort P by x-coordinate
if |P| ≤ 3: brute-force all pairs
compare each pair, track minimum
mid = median x; divide into left, right
δ_L = ClosestPair(left)
δ_R = ClosestPair(right)
δ = min(δ_L, δ_R)
check strip within ±δ of mid
return min(δ, strip minimum)