摘要: 问题:设S是平面上n个点的集合,考虑在S种找到一个点对p和q,使其距离最短。求出其最短距离。暴力检查每个点对并记录距离后可以选出最短距离,但时间复杂度是O(n2)。这里可以运用一种分治的算法,使得时间复杂度降为O(nlogn)。算法基本思路:1.将所有点排序,优先考虑x,若x相等,则考虑y;2.找到中间位置,将集合一分为二,在左边范围内求出最短距离L,在右边范围内求出最短距离R(集合一直划分至三个点后,直接暴力求解);3.现在考虑左边的点和右边的点组合能否产生更短的距离。因为现在知道L和R,求出两者中的较小值M,在中间位置各取左边M距离和右边M距离的空间,把其中的左边的点与右边的点暴力求距离值 阅读全文
posted @ 2013-11-12 20:04 7hat 阅读(385) 评论(0) 推荐(1) 编辑