我有n个点(约10^5个),位于m维(在10^4到10^6之间)的超球体上。
我将进行一系列查询,形式为“给定点p,找到最接近p的n个点中的一个”。我将进行大约n个这样的查询。
(不确定超球面事实是否有所帮助。)
解决此问题的简单且朴素的算法是,对于每个查询,将p与所有其他n个点进行比较。做n次这样的操作会得到O(n^2m)的运行时间,这太大了,我无法计算。
有更高效的算法可以使用吗?如果我能够通过某些对数因子将其降低到O(nm),那就太好了。
我将进行一系列查询,形式为“给定点p,找到最接近p的n个点中的一个”。我将进行大约n个这样的查询。
(不确定超球面事实是否有所帮助。)
解决此问题的简单且朴素的算法是,对于每个查询,将p与所有其他n个点进行比较。做n次这样的操作会得到O(n^2m)的运行时间,这太大了,我无法计算。
有更高效的算法可以使用吗?如果我能够通过某些对数因子将其降低到O(nm),那就太好了。