I have recently learnt the *O*(*NlogN*) solution which solves the closest pair problem based on a divide-and-conquer approach. However , I still have a question about it . I assume all N points are unique.

In the case where the closest pair in the current sub-problem consists of one point to the left of the middle line , and another to the right of the middle line , we have to :

- list the points that satisfy
*abs*(*x*-*x*_{mid}) <*D*: D is the shortest distance so far. - sort these points with respect to their y-coordinates (in non-decreasing order)
- Loop on those points in order , for each point there is a constant number of points that exist within the 2
*D***D*rectangle and any point outside of this rectangle can't improve the answer.

I know that within a 2*D* * *D* rectangles there can exist at most 6 points such that any pair of them is at least *D* units of distance apart. Hence , in the previous method , I think we should examine at most 5 neighbor points within that rectangle. However , many websites claim that the upper bound is 7 or 8. I can't get why. May someone explain the reason ? Also , I'm interested in a formal proof for the 6-points-claim. I only found intuitive ones but they aren't very convincing. Thanks.

say your proof for "I think we should examine at most 5 neighbor points within that rectangle". but I think it's not important that you check 5 points or 6 points, its important that the number of points in the rectangle have the constant upper_bound for all possible situation.

Oh sure , the exact number of points doesn't affect the asymptotic complexity but I have a theoretical curiosity :) I think it's a bit hard to write down a formal proof for that.