对于一般的非对称稀疏矩阵,是否有一种有效的存储格式,可以在其中找到给定行或列中的所有非零条目时间?(是任何行或列中非零条目的最大数量。)
如果我存储一个稀疏矩阵在压缩行或 ellpack 格式中,我可以在给定行中找到所有非零条目时间,但在给定列中查找所有非零条目需要. 当然,我可以存储以压缩列格式,在这种情况下,列访问将采取但行访问需要.
一种直截了当的方法是为同一个矩阵存储压缩行和列这两种格式,这当然需要双倍的内存。一个人能做得更好吗?
我能想到的最好的方法:对于方阵,可以将其存储为结构对称矩阵。如果要查找 j 列中的所有条目,则改为查找 j 行中的所有条目,然后删除多余的条目。