c++ - 一个 vector 在 2500 万个 vector 中的查找距离

标签 c++ linux vector distance nearest-neighbor

我有 2500 万个高维 vector (例如 2000 维), 什么是我可以索引这些 vector 的高效系统, 然后传入一个新的 vector 并返回最近的K个 vector ?

我将在 linux 系统上运行它。

最佳答案

你可以对一个n维轴做一个n维角度的索引。这将花费 O(n) 时间,然后您可以在 O(nlogn) 时间内用您喜欢的排序方式对这些进行排序。我想搜索将在 O(logn) 时间内取出 k 个 vector + x(完成的工作量)。我不认为存在解决此类问题的捷径。

关于c++ - 一个 vector 在 2500 万个 vector 中的查找距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44179700/

相关文章:

r - 如何从字符对象创建字符向量?

c++ - 两个 vector 的集合交集的高效或快速大小

C++如何水平打印大字母?

c++ - 如何最好地计算以公里/小时为单位的行驶速度

linux - 如何在 Ubuntu11.04 中使用 NASM 维护堆栈

linux - PostgreSQL 不同版本

linux - 在 fedora 20 上安装 checkinstall

c++ - Eclipse c++11//vector

c++ - MPI_ERR_TRUNCATE : On Broadcast

c++ - Wt中如何给表格添加滚动区域(机智)