algorithm - 二维 map 上最孤立的点 - 算法

标签 algorithm dictionary math computational-geometry kdtree

我有一组点,需要知道哪个点与其他点的欧氏距离最远。 我想从 O(n^2) 改进这个

伙计们,我听说过 Kd 树的解决方案,但是 如果 Kd 树中已经存在点 'x',则 KD 树不提供最近距离。并且没有要删除的实现。

编辑: 您可以通过在“最近的搜索算法”和“我们设置根/父级的位置”最初开始搜索时忽略自身来做到这一点

最佳答案

给定 n 个点 Pi, 1 <= i <= n:

  1. 构建 kd-tree(使用中值算法的 O(n) 中值,这是 O(n log n))

  2. 对于所有点 Pi:找到第二个最近点(最近点将是点本身),计算距离,如果距离是新的最小值则记住 Pi;这又是 O(n log n)。

总而言之,这是一个复杂度为 O(n log n) 的算法。

关于algorithm - 二维 map 上最孤立的点 - 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634828/

相关文章:

java - 将 pojo 类列表转换为 Jdom 树?

python - 将所有值的 Python Dict 扁平化为 True/False

python:以通用方式获取嵌套字典的值

c++ - 多项式拟合力一次为零

c++ - 一种干净的渲染方式

algorithm - 从图像中提取网格上的位置

c++ - 有没有办法限制 STL::map 容器的最大大小?

.net - 如何检查 .NET 中值类型之间的 "safe"转换?

java - 奇怪的距离 Java 3d

algorithm - 基于时间的聚类推荐算法