Divide:Smaller problemsare solved recursively(except basecases).
Conquer:The solution tothe original problem is then formed fromthe solutions to thesubproblems.
a procedure consisits of two half-sizedrecursive calls and O(N) additional work, then the total time will be O(NlogN)
# closest-points problem
Divide:
Either the closest points are both onthe left, or they are both on the righ, or one is on the left and theother is on the right.
Conquer:
dL,dR -> recursion
dC(cross)
If not too many points in the strip ->brute force
In the worst case, every point is in thestrip -> use y coordinates:
Δy < d
/* points are all in the strip */
/* and sorted by y coordinates */
for( i= 0; i< NumPointsInStrip; i++ )
for ( j = i+ 1; j < NumPointsInStrip;j++ )
if ( Dist_y( Pi , Pj)> d)
break;
else if ( Dist( Pi, Pj ) < d)
d = Dist( Pi , Pj);
In the worst case, at most 7 points pj areconsidered for any point pi. So the time to compute dC is O(N)
==> a=3,b=2,k=1
==>O(NlogN)