相关疑难解决方法(0)

如何找到两个最遥远的点?

这是我前一段时间在求职面试时被问到的问题.而我仍然无法找出合理的答案.

问题是:

你得到一组点(x,y).找到2个最遥远的点.相互遥远.

例如,对于点:(0,0),(1,1),( - 8,5) - 最远的是:(1,1)和(-8,5)因为它们之间的距离较大(0,0) - (1,1)和(0,0) - ( - 8,5).

显而易见的方法是计算所有点之间的所有距离,并找到最大值.问题是它是O(n ^ 2),这使得它对于大型数据集而言过于昂贵.

有一种方法是在边界上有第一个跟踪点,然后计算它们的距离,前提是边界上的点数少于"内部",但它仍然很昂贵,并且在最坏的情况下会失败.

试图搜索网络,但没有找到任何明智的答案 - 虽然这可能只是我缺乏搜索技巧.

language-agnostic algorithm geometry

50
推荐指数
3
解决办法
5万
查看次数

找到距离最远的点的算法 - 优于O(n ^ 2)?

在我的计划中,我有一套积分.出于重新缩放的目的,我正在搜索最远的两个节点,然后计算乘以所有坐标的因子,使得最大距离等于我定义的某个预定义的距离.

然而,我用来找到最远的两个点的算法对于大的点集是有问题的,因为它是O(n^2); 伪代码(已经计算的距离被跳过):

 for each point in points:
     for each other point in points:
         if distance between point and other point > max
             max = distance between point and other point
Run Code Online (Sandbox Code Playgroud)

有更快的东西吗?

language-agnostic algorithm math geometry

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

algorithm ×2

geometry ×2

language-agnostic ×2

math ×1