我有一组三维点。我想快速查询任何这些点的k个最近邻居。我知道这样做的常用方法是oct-tree,但我认为使用下面描述的数据结构,查询会更快。
我希望点上的最小图形为顶点,它具有以下属性:
在任意2个点P1,P2之间:存在所有内部点P3的路径:
距离(P1,P3)< =距离(P1,P2)。
我的问题是我无法弄清楚如何在经济实惠的时间内计算这个最小图。
答案 0 :(得分:0)
那是因为没有银弹。
您可以执行相对较慢的查询,无需先前的计算或具有大量先前计算和后备数据结构的快速查询。由你来决定。
答案 1 :(得分:0)
听起来你要求的只是距离另一点一定距离的点数。 d(P1,P2)只是一个数字,因此P1距离内的所有点都符合您的标准。
如果您需要多次从多个起点运行搜索,那么您应该查看标准数据结构,如kd树。如果你只执行一次,那么迭代所有点可能是你最好的选择。
您的想法是什么?
答案 2 :(得分:0)