问题描述:
在二维平面内给定n个点,寻找这些点中举例最近的两个点;
思路:
我们发现如果要将全部的点两两比较,则最起码需要O(n^2),因此我们的思路是如果要求与某个点A距离最近的点,则需要缩小范围,不用每个点都比较;
我们需要使用分治法来求解;
首先我们需要定义一些变量:
Px:对于点按照x坐标排序;
Py:对于点按照y坐标排序;
Qx:对于左部分的点按照x坐标排序;
Qy:对于部分的点按照y坐标排序;
Rx:对于右部分的点按照x坐标排序;
Ry:对于右部分的点按照y坐标排序;

本文介绍了一种利用分治法在二维平面上寻找给定点集中的最近点对的方法。通过按坐标排序并递归分割问题,降低时间复杂度到O(n log n)。在分割和组合过程中,涉及了Qx、Qy、Rx和Ry等区域的处理,最终找到可能的最小距离点对。
在二维平面内给定n个点,寻找这些点中举例最近的两个点;
我们发现如果要将全部的点两两比较,则最起码需要O(n^2),因此我们的思路是如果要求与某个点A距离最近的点,则需要缩小范围,不用每个点都比较;
我们需要使用分治法来求解;
首先我们需要定义一些变量:
Px:对于点按照x坐标排序;
Py:对于点按照y坐标排序;
Qx:对于左部分的点按照x坐标排序;
Qy:对于部分的点按照y坐标排序;
Rx:对于右部分的点按照x坐标排序;
Ry:对于右部分的点按照y坐标排序;

2528

被折叠的 条评论
为什么被折叠?