实现SparseMatrix的有效方法

时间:2018-11-02 04:41:24

标签: java algorithm matrix out-of-memory sparse-matrix

我的矩阵很大,但是很多条目都是空的。

因此,我尝试使用AVL树的向量,其中向量的长度约为20 7 ,每个AVL树具有大约110,000个节点(总共20 7 < / sup>·110,000个节点)。

但是现在,当我将问题的大小增加到90,000时,由于出现了太多的节点,并且配置了JVM的最大堆大小为2 GB,我将收到“超出了GC OverHeader限制”错误。

我想知道是否还有另一种有效地实现稀疏矩阵的方法?

如果有帮助:创建稀疏矩阵后,我不需要修改它。我只需要构建一次,然后进行有效的查找即可。

1 个答案:

答案 0 :(得分:0)

https://en.wikipedia.org/wiki/Sparse_matrix#Storing_a_sparse_matrix上有一个关于稀疏矩阵数据结构的很好的总结,但是当然,这一切都取决于您需要使用它做什么。如果只需要查找,我希望哈希表比平衡树更节省空间。尝试java.util.HashMap不会花很长时间。