一般来说,用二维数组来存储矩阵,但如果出现一些阶数很高的矩阵,或者矩阵中有很多是零元素,为了压缩存储空间可以对矩阵进行压缩存储,一般有两种矩阵可以压缩存储,一种是对称矩阵,对称矩阵,顾名思义,矩阵中元素关于对角对称,因此只需要存储一半即可,所以只要一维数组,对i行j列的元素,可以通过计算得到数据下标,即可得出其值,至于计算公式,自己推一下,很好得出,第二种,就是稀疏矩阵,也就是那种有很多相同数据都为0的数组,我们着重讨论的也是这个,那么如何对矩阵存储呢?下面过我给出一种存储方法
此矩阵数据是以行优先存储,当然,也可以以列优先存储,随意啦,不过主要看用这样方式存储是否利于操作,对矩阵的操作无非是转置,求逆,矩阵相乘,相加等,都可用三元组表实现,具体操作并不难,这里就不赘述了,有很多算法也可以在网上搜索到,有兴趣的可以找找看,还有一些其他的存储方案在上面的基础上添加了各行第一个非零元素的位置数组,在某些时候更为方便,其他的方法诸如链表之类的都比价麻烦。有兴趣的也可以自己看看,这里就不再说了,最近要做移动开发,可能要看看这方面的书估计不会天天写,看看吧。如果有空就继续写,后面还有关于树和图的部分还有查找,排序方法等等的分析。