algorithm - 测量稀疏矢量和30k其他预定义稀疏矢量之间的最小角度

标签 algorithm sorting statistics computer-science knn

我有一个稀疏向量,比如说
<0,0,…,0,8,3,…>
我想从预先定义的30k个向量中找到k个最近的向量。我所做的具体的“接近”计算类似于标量乘法,以找到向量之间的角度。
有没有办法优化这个过程(除了简单的计算30k并保存前k个结果的方法)?我对优化运行时间感兴趣,不是mem

最佳答案

一个简单的解决方案是预计算所有角度并将其存储在查找表(上三角矩阵)中。这将花费30k*30k/2=450m。这将是最快的。

关于algorithm - 测量稀疏矢量和30k其他预定义稀疏矢量之间的最小角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685909/

相关文章:

r - 在 R 中为 2D 核密度估计实现不同的核

r - R : How to set fpc argument (finite population correction) 中的调查包

python - 了解: "def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:" on leetcode

javascript - 基于相同项对数组项进行排序并创建多维数组

python - 如何在多层python字典中找到最小值,并找到它的“路径”(即叶值的键列表)

mysql - SQL:找出最大的响应时间变化百分比

c - 内存泄漏检测

algorithm - 具有数组中重复元素的二进制搜索

java - Project Euler 9 Solution没有给出正确的结果

java - 使用Java的排序功能