KD树仍然是在移动对象上使用的最佳算法之一

问题描述 投票:1回答:1

假设您有一个物体列表,每个物体都需要计算出他最近的物体才能拍摄。该对象具有x和y值。物体也在移动。 KD树仍然有用吗?我不确定,因为如果对象在移动,则必须继续创建此kd树。

我可以使用哪种算法获得最佳速度(最好使用Big O)

c++ algorithm performance sorting
1个回答
0
投票

k-d树是一种非常有效的数据结构,用于确定具有坐标的欧几里得空间中的最近邻居。一个k-d树的生成问题将需要大量的对象(它是在O(n log²n)中生成的,因此几乎是线性时间,而对所有最近邻居的搜索都需要O(n log n),也很便宜)。因此,您可能还会对该程序的其余部分有疑问。

从您的问题的外观来看,似乎您需要跟踪的只是欧洲大陆空间中多个点的最近邻居。我建议您从kd树的原始实现开始,在extremeunlikely的情况下,kd树的生成在时间上或在时间上都过于昂贵内存,以尝试找到跟踪每个元素的多个邻居的方法,并仅在需要时更新列表。但说实话,我过去一直在使用kd tree,并且我记得尽管数据集非常大(在2D空间中有数以百万计的点),但是生成和搜索的速度足以忽略不计。其他操作。

© www.soinside.com 2019 - 2024. All rights reserved.