找到一组点内最大距离的最快算法

时间:2019-01-21 16:04:51

标签: python algorithm data-structures point euclidean-distance

假设我有一组要点:(就我而言,是包含所有要点的列表:pts = [(1,1),(3.4,5),...,(x,y)])。我想了解找出两点之间最大距离的最快方法是什么。返回距离和使用的点。

我知道遍历每个点在计算上是昂贵的,并且会导致O(n ^ 2)。

另一种方法是比较pt1-> pt2,pt1-> pt3等,然后本质上存储pt2-> pt1(与pt1-> pt2相同),但是执行pt2-> pt3,pt2-> pt4等。我觉得这样至少会给我O(n ^ 2/2),但计算量仍然很大。

有没有任何方法,显然是在找到O(n log(n))的凸包之后,使用较小的有限Hull点集来确定最大距离是多少-仍在O(n log(n)以内)?

谢谢!

0 个答案:

没有答案