我已成功编写了一个函数,该函数遍历一个Kd-Tree,用于最近的单个邻居。
但是,我正在尝试切换此函数,以便找到K-最近邻居而不是单个邻居。事实证明,这比我原先想象的要艰巨得多,而且我发现自己需要一些帮助......
关于kD-trees的维基百科文章说:
通过简单的修改,可以通过多种方式扩展算法。它可以通过保持k个当前波形而不是仅仅一个来为一个点提供k-最近邻。只有当分支不能比任何k当前的最佳点更接近时才会消除分支。
...但它没有说明如何获得初始当前最佳状态。找到第一个“最好的”很简单,但是我不知道怎么去寻找剩下的k-current bests而不去除之前的最好并且再次搜索...这基本上就没有找到快速算法因为我必须做k(在我的情况下,17次)。
如果我有17个初始“bests”的填充列表,我相信我的算法会找到正确的点。
如果这很模糊,我道歉。如果需要任何代码示例,我很乐意提供它们。虽然如果对这个问题有一个简单的解释,可能没有必要发布它,所以我最初不会。提前致谢!