读书人

编程之好2.11寻找最近点对(POJ 3

发布时间: 2012-08-13 13:21:53 作者: rapoo

编程之美2.11——寻找最近点对(POJ 3714)

问题:

给定平面上N个点的坐标,找出距离最近的两个点。


解法:

我们先对N个点的x坐标进行排序,排序我们使用最坏复杂度O(n*logn)的快速排序方法,在排序的过程中minDifferent会递归计算出左右两边的最小距离,再用其中的较小值minum得到以中位数点附近的带状区域[p[median+1].x-median, p[median].x+median],对带状区域的点按照y坐标排序,对带状区域的每个点只需计算最多7个点,就能得到所有可能小于minum的点对。


读书人网 >编程

热点推荐