gpt4 book ai didi

c++ - C++中2点之间的最小距离

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:59 26 4
gpt4 key购买 nike

我有 m 个位置(x,y 坐标)。

我有 n 个请求找到离给定点 P(x,y) 最近的地方; (最小欧氏距离)

我如何解决 O(n*m) 以下的问题,其中 n 是请求数,m 是位置数?我可以使用平方欧几里得距离,但它仍然是 n*m。

最佳答案

试试kd-tree .可以找到高性能库实现 here .

注意:我指的是为高维度优化的近似最近邻搜索。这对您的应用程序来说可能有点矫枉过正。

编辑:

对于 2d kd-tree,构建时间为 O(m*log(m)),查询时间为 O(n*sqrt(m))。如果您的查询数量 n 超过 log(m),这最终应该是对天真的解决方案的净赢。

库意味着您不必实现它,因此复杂性应该不是问题。

如果您想推广到高维极速查询,请查看 locality sensitive hashing .

关于c++ - C++中2点之间的最小距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com