获取 2D 平面中 2 个最远点的算法(用于家庭作业)
Algorithm to get the 2 most distant point in a 2D plane (for homework)
我必须制定一个高效的算法来获取彼此距离最远的两个点,并且我正在尝试获得 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/
对于家庭作业来说,这看起来太复杂了。
第一种方法,看起来很奇怪,而且我认为它对我的问题不起作用。
如有任何帮助,我们将不胜感激。
好吧,这是家庭作业,所以没有代码示例:)
这是 O(n log n) 方法:
使用任何 O(n log n) 凸包算法找到所有给定点的 Convex Hull
现在我们可以注意到最远的2个点仍然在凸包上
我们可以在 O(n) 时间内使用 Rotating calipers 技术找到这些点
我必须制定一个高效的算法来获取彼此距离最远的两个点,并且我正在尝试获得 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/
对于家庭作业来说,这看起来太复杂了。
第一种方法,看起来很奇怪,而且我认为它对我的问题不起作用。
如有任何帮助,我们将不胜感激。
好吧,这是家庭作业,所以没有代码示例:)
这是 O(n log n) 方法:
使用任何 O(n log n) 凸包算法找到所有给定点的 Convex Hull
现在我们可以注意到最远的2个点仍然在凸包上
我们可以在 O(n) 时间内使用 Rotating calipers 技术找到这些点