稀疏矩阵(sparse matrix)是矩阵的一种特殊情况,其非零元素的个数远远小于零元素的个数,且分布没有规律。
设一个m行n列的矩阵有t个非零元素,则系数因子δ为:
通常当δ<0.05时,我们称该矩阵为稀疏矩阵。如下图所示:
0 0 2 0 0 0 0
3 0 0 -11 0 0 0
A= 0 0 0 -6 0 0 0
0 0 0 0 0 -17 0
0 9 0 0 19 0 0
0 0 0 -8 0 0 -52
A为稀疏矩阵。
存储:
对于系数矩阵来说,采用二维数组的存储方法既浪费大量的存储单元用来存储零元素,又要在运算中花费大量的时间进行零元素的无效计算,显然并不可取。并且在实际的工程应用中,待处理的系数矩阵往往是很大的。例如,建立计算机网络时,用999条线路把1000个站点连接起来。用以表示这个网络的连接矩阵有1000*1000个矩阵元素,其中只有999个非零元素。显然,把所有的零元素都存在计算机中是不经济的,所以必须必须考虑对稀疏矩阵的压缩存储。
必须对每一个非零元素,保存它的下标和值,我们可以采用三元组<row, column, value>来唯一的确定一个矩阵元素。因此,稀疏矩阵需要使用一个三元数组(三元组表)来表示,在该表中,以行优先的顺序依次存放。