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

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

输出应该只打印2点。

我现在发现的是来自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 /

对于家庭作业来说看起来很复杂。

第一种方法看起来很怪异,而且我认为这不适用于我的问题。

任何帮助将不胜感激。

yxsong1972 回答:在2D平面中获取最远2个点的算法(用于作业)

这是家庭作业,因此没有代码示例:)

这是O(n log n)方法:

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

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

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

本文链接:https://www.f2er.com/3133336.html

大家都在问