我正在寻找Java中的KDTree实现。 我已经进行了谷歌搜索,结果似乎相当杂乱。虽然有许多结果,但它们大多只是一次性的小实现,我希望能找到一些更具“生产价值”的东西。像Apache集合或.NET的优秀C5集合库之类的东西。这样我就可以看到公共错误跟踪器,并检查上次SVN提交发生的时间。在理想...
在写完这篇文章后,我决定付诸行动,将我的一个旧项目转换为使用recursion-schemes。 所涉及的数据结构是懒惰的kdtree。请查看具有显式递归和隐式递归的实现。 这主要是一种沿着以下方向进行的简单转换:data KDTree v a = Node a (Node v a) (N...
我有一个二维数组:MyArray = array([6588252.24, 1933573.3, 212.79, 0, 0], [6588253.79, 1933602.89, 212.66, 0, 0], etc...) My...
四叉树和kd-tree之间的主要区别是什么?我知道它们都可以在多个维度中分割点,但我不明白为什么会选择其中之一。我需要一种结构,可以让我计算在给定区域内有多少个点(2D点)。基本上,我正在尝试检测点的聚集。
我在查看维基百科的KD树页面。作为一个例子,我用Python实现了列出的构建KD树的算法。然而,使用KD树进行KNN搜索的算法切换到另一种语言并不是完全清晰的。英文解释开始让人感到有道理,但其中的某些部分(例如他们“展开递归”以检查其他叶节点的区域)对我来说并没有任何意义。这是如何工作的,如何...
在k-d树的维基百科条目上,介绍了一种在k-d树上进行最近邻搜索的算法。我不理解的是第3.2步的解释。如果搜索点的分割坐标与当前节点的分割坐标之间的差异大于搜索点的分割坐标与当前最佳坐标之间的差异,如何知道没有更接近的点? 最近邻搜索 用2D KD树进行NN搜索的动画演示 最近邻(NN)算...
我有一组大量的二维点,并希望能够快速查询2D空间中任何点的k个最近邻居。由于是低维度的,使用KD-Tree似乎是一个不错的选择。我的初始数据集很少更新,因此对于查询点的时间比建立时间更重要。但是,每次运行程序时,我都需要重新加载对象,因此我还需要一种可以快速保存和重新加载的结构。 两个可用的...