缩行存储格式(简称CSR存储格式)也用三个一维数组来存储矩阵信息,与坐标存储格式不同的是,它在行方向进行了简单压缩,进一步缩小了存储空间。具体来说(见图6.4.2):
√ 第一个数组V存放各个非零元素的值,并且各个元素按照行从小到大的顺序放置(这隐含了同一行的元素要放在一起),同一行的各个元素之间按照任意顺序排列。
√ 第二个数组J存放V中各个元素的列坐标。
√ 第三个数组I存放J(或V)中各个行第一个项目的首位置。
因此,V和J中各有q(矩阵中非零元素的个数)个项目,而I中的项目数等于矩阵的行数。
图6.4.2 CSR存储格式(稀疏矩阵见图6.4.1(a))
仍然沿用6.4.1.1小节的矩阵基本参数,得到CSR存储格式的空间占用情况:
对照上式与坐标存储格式的空间占用表达式,可以知道,CSR存储格式不一定比坐标存储格式节省空间,只有当行数小于矩阵中非零元素个数的时候才是这样。
根据对称性,也有缩列存储格式(CSC:Compressed Sparse Col Format),其空间占用为:
|