我有一个分配比较2个不同算法的问题。这是问题所在:
假设我有一系列像这样的xy坐标:
A(2,3), B(5,6), C(7,8), d(6,2), E(5,5)等。
我想找到两条距离最短的坐标。其中一个解决方案是使用蛮力(逐个匹配),但还有另一种使用“分而治之”方法的解决方案。
你能帮我解决“分而治之”的方法吗?
答案 0 :(得分:5)
递归分而治之的方法如下:
1)根据x坐标对点进行排序 2)拆分组 通过垂直线x = xmid指向两个相等大小的子集。
3)在左右子集中递归地解决问题。这
产生左侧和右侧最小距离dLmin和dRmin, 分别。4)找到其中的一对点中的最小距离dLRmin 一点位于分隔垂直和左边的左侧 点在于右边。
5)最终答案是dLmin,dRmin和dLRmin中的最小值。 (source)
答案 1 :(得分:0)
想想"划分"和"合并"零件意味着。显然"划分"意味着将问题分成两个较小的单独的问题。怎么样?那么,鉴于你解决了2个较小的问题,你如何将它们合并在一起?两种方法的时间复杂度是多少?如果您需要更多说明,请发表评论。