稀疏矩阵的数据结构,其中元素是随机分布的

时间:2011-03-25 10:54:57

标签: c data-structures matrix sparse-matrix

除了链表之外我什么都想不出来..还有什么更好的主意吗?

3 个答案:

答案 0 :(得分:4)

如果要将元素存储在矩阵中,您可能需要考虑使用从坐标到其内容的哈希表。这使得您可以比将它们存储在链表中更快地查找任何矩阵位置的内容(即O(1)而不是O(n))。

答案 1 :(得分:2)

Quatree matrices(论文中使用的代码为there)具有相当好的插入和访问复杂性,以及相当不错的性能。它们有特定的算法(主要是研究论文的形式)。然而,他们并没有真正普及。但他们值得更多的爱。如果您打算解决系统问题,可以解释一个非常适合四叉树矩阵的分解there

如果您的矩阵将立即构建,并且您不需要在构造后添加/删除元素,那么压缩行存储(或压缩列存储)是广泛而有效的,并且有库和特定算法处理它们。

毕竟,你没有告诉我们你想用你的矩阵做什么。

答案 2 :(得分:0)

对于每个非零元素,您需要存储其坐标(行/列)及其值。有很多方法可以做到这一点。

Wikipedia概述了一系列方法: http://en.wikipedia.org/wiki/Sparse_matrix#Storing_a_sparse_matrix

如果不了解矩阵的大小和密度,内存限制,预期的访问模式等,就无法说明什么是最适合您的应用程序。