如何在 C 或 C++ 中实现 3d kDTree 构建和搜索算法



如何在 C 或 C++ 中实现 3d kDTree 构建和搜索算法?我想知道我们是否有一个工作代码要遵循

我想

向您推荐两个好的演示文稿:

  • "k-d树简介"
  • "第六讲:Kd树和范围树"。

两者都提供了开始编写自己的实现所需的所有(kd树背后的基本思想,简短的可视化示例和代码片段)。

更新-19-10-2021:资源现在更公开。感谢@Hari在下面的评论中发布新链接。

我发现Vlastimil Havran的出版物非常有用。他的博士论文很好地介绍了kd树和遍历算法。进一步的文章是关于几个改进的,例如如何在O(nlogn)中构建kd树。在不同的图形库中也有很多实现。你应该谷歌一下。

有关 C 语言中 3D kd 树实现的示例,请查看 kd3。它不是通用库,要求输入数据采用特定形式,但想法和方法应该是可转移的。

披露:我是kd3的作者。

免责声明:它是作为现有应用程序的概念验证代码编写的,因此不像它应该的那样通用,也没有经过充分测试。欢迎错误报告/修复。

最新更新