【发布时间】:2015-12-21 13:58:09
【问题描述】:
我有两个稀疏向量 X 和 Y,想要得到 O(m+n) 中的点积,其中 m 和 n 是 X 和 Y 中非零元素的数量。我能想到的唯一方法是选取向量 X 中的每个元素并遍历向量 Y 以查找是否存在具有相同索引的元素。但这需要 O(m * n)。我将向量实现为链表,每个节点都有一个元素。
【问题讨论】:
-
列表是否已经按索引排序?
-
@A.S.H m 和 n 不是向量的大小,而是每个向量中非零元素的数量
-
是的,我在编辑后看到了。但是,答案仍然假设列表按索引排序。我认为这需要明确说明,
-
如果您担心性能,我建议从链表切换到数组。
-
@stgatilov 好的,我明白你的意思了。我理解您的评论是指数组中的幼稚存储,这将导致存储大量零。
标签: algorithm big-o linear-algebra