【发布时间】:2020-11-05 00:11:15
【问题描述】:
我有一个数据集,其中我将一个值映射到一个三维点。例如(1,2,3)->5; (2,4,1)->7;等等。
我需要存储这些并能够快速找到所需的值。如果每个可能的输入都有一个条目,我可以只使用一个 3D 数组(或字典),使用该点作为索引并且根本不进行搜索。
然而,输入是实值的,因此数据集中并非每个点都存在。我想找到与输入数据最近的 n 个点并获取它们的相关值以执行插值。
我可以使用哪种数据结构来有效地实现这一点?数据结构只需创建一次,以后无需更改。
【问题讨论】:
-
find value for closes point... 建议基于树的结构可能是平衡的,如红黑。
-
KD-Tree 支持高效的最近邻搜索。
-
在给定 R^3(实数值)中的一个点的情况下,您是否需要在 Z^3(仅整数)中找到最近的点?
-
你能谈谈数据点的分布吗?不同的数据结构在不同的分布上效果最好。
-
我需要在 R^3 中找到点,示例可能很糟糕,抱歉。
标签: algorithm data-structures nearest-neighbor