文件名称:用分治算法解平面最接近点对问题
文件大小:236KB
文件格式:DOC
更新时间:2011-11-18 16:05:58
用分治算法解平面最接近点对问题 C++
关于最接近点对问题 给定平面上n个点,找出其中一对点,使得在n个点所构成的所有点对中,该点对的距离最小。 这个问题很容易理解,似乎也不难解决: 先求第1个点与其余n-1个点的距离; 再求第2个点与其余n-2个点的距离; 再求第3个点与其余n-3个点的距离; ………………………………………… 再求第n-1个点与其余1个点的距离; 然后找出最小值。但这种算法对于n很大的情况是不合适的。 分治法: 为了使问题易于理解和分析,我们先来考虑一维的情形。此时S中的n个点退化为x轴上的n个实数x1,x2,..,xn。最接近点对即为这n个实数中相差最小的2个实数。我们显然可以先将x1,x2,..,xn排好序,然后,用一次线性扫描就可以找出最接近点对。对这种一维的简单情形,我们尝试用分治法来求解,并希望能推广到二维的情形。