C++ 不确定使用哪种多维最近邻算法

C++ 不确定使用哪种多维最近邻算法,c++,data-mining,kdtree,r-tree,C++,Data Mining,Kdtree,R Tree,我目前正在做一个项目,需要一个线程在3D环境中构建一个由30个(ish)最接近播放器的进程组成的队列 所有这些进程都可以在环境中移动,也可以离开放置它们的起始节点。我曾考虑过使用R树,但由于它的插入时间高得离谱,它似乎不太可行 KD-树不起作用,因为它们往往只适用于静态环境 还请注意,这将与主更新线程异步运行,因此原子方法最有效 有人能提出一种方法吗?R树可以很好地工作。插入时间在很大程度上取决于实现的质量。。。kd树也是如此。它们很值得一试。但是对于游戏(2D或3D),不要忽视最枯燥的方法:网

我目前正在做一个项目,需要一个线程在3D环境中构建一个由30个(ish)最接近播放器的进程组成的队列

所有这些进程都可以在环境中移动,也可以离开放置它们的起始节点。我曾考虑过使用R树,但由于它的插入时间高得离谱,它似乎不太可行

KD-树不起作用,因为它们往往只适用于静态环境

还请注意,这将与主更新线程异步运行,因此原子方法最有效


有人能提出一种方法吗?

R树可以很好地工作。插入时间在很大程度上取决于实现的质量。。。kd树也是如此。它们很值得一试。但是对于游戏(2D或3D),不要忽视最枯燥的方法:网格、四叉树等,以避免锁定,例如,考虑日志结构方法。HMM,我看到的大多数R树实现与STD::MAP有类似的插入时间。这对我来说有点太慢了。你能提供一个更快的来源吗?我也做了四叉树和八叉树。这两个似乎都不能完全满足我的要求,并且产生了相当大的内存占用。不要使用库。你自己写吧,省去那些你觉得不可接受的开销。哦,对不起。我所说的来源是指一篇论文的来源。不是真正的源代码哈哈。不幸的是,科学论文在谈到真实世界的性能时可能会更具误导性。实际上,我不知道是否有解释四叉树的方法。您可能还想看看BSP树,根据维基百科的说法,BSP树通常用于3D游戏。