在2D平面中获得2个最远点的算法(用于作业)

问题描述 投票:-1回答:1

我必须制定一种有效的算法,以得到彼此最远的两个点,而我正在尝试获取O(nlogn)复杂度。我搜索了一种有效的算法,但我只能找到最接近的点。

输出应该只打印两个点。

我现在发现的是来自GeeksForGeeks的算法:https://www.geeksforgeeks.org/closest-pair-of-points-using-divide-and-conquer-algorithm/但用于最接近的点。

以及此解决方案:

mukeshiiitm.wordpress.com/2008/05/27/find-the-farthest-pair-of-points /

看起来很复杂的作业。

第一种方法,看起来很奇怪,再加上我认为它不适用于我的问题。

任何帮助将不胜感激。

algorithm performance points
1个回答
1
投票

嗯,这是家庭作业,所以没有代码示例:)

这里是O(n log n)方法:

  1. 使用O(n log n)凸包算法中的任何一个找到所有给定点的Convex Hull

  2. 现在我们可以注意到,最远的两个点仍将位于凸包上

  3. 我们可以在O(n)时间内使用Rotating calipers技术找到这些点

© www.soinside.com 2019 - 2024. All rights reserved.