多维坐标的数据结构(搜索,插入)?

时间:2017-06-12 09:42:39

标签: search data-structures insert coordinates

是否有专门设计用于快速插入和搜索多维坐标的数据结构(多于2或3d,对于所有实际用途,小于1k维和1M点)?更好的是,对于任意距离指标?

我知道kd-trees有利于插入,但据我所知,平衡它们并非易事,搜索在更高维度上效率不高。无序地图/哈希表乍一看是一个很好的解决方案,但据我所知,哈希和碰撞存在问题(例如,转换为字符串通常会截断数值精度,处理非相邻点的碰撞可能是昂贵)。也许像每个维度上的红黑树这样的东西都适合插入,对搜索来说也不错(沿着维度递归过滤)。

我只是不想重新发明轮子,我相信这是目前数据科学的共同需求。很高兴收到论文/教程的链接作为答案。理想情况下,答案是在C / C ++ / Python / Java / Matlab中有现有的实现。

1 个答案:

答案 0 :(得分:0)

您正在寻找的数据结构是R-Tree。

您可以在此处找到Java实现。 https://github.com/davidmoten/rtree