首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-08-13 
编程之美2.11——寻找最近点对(POJ 3714)问题:给定平面上N个点的坐标,找出距离最近的两个点。解法:我们先对N

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

问题:

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


解法:

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


热点排行