1,三角矩阵是对称矩阵的一种,对称矩阵的最大特点就是a[m][n] = a[n][m]

那既然是这样,我们在内存中,就没有必要把这个矩阵全部保存,只要保存一半就可以了,余下的一半就用a[m][n] = a[n][m],来表示,这样就节省下来一半的内存.那么这个三角矩阵在内存中是怎么存储的呢

我们看到这个是有规律的,第一行1个元素,第二行2个元素,第N行就用N个元素
那么我们就可以计算出
,在内存中的位置是:i*(i-1)/2+j-1
2,对角矩阵(带状矩阵)
在一般的矩阵中,数据全部集中在该矩阵的对角线附近,别的地方的数据全部是零,那么,我们只需要把有数据的元素保存下来,别的就不管了,这样也节省下来不少内存.

那么怎么保存这个数据,又方便查找和更改呢,答案是用二维数组,每条对角线的数据就是一个数组,这样,这个二维数组只占了24个数据,本来整个矩阵有64个元素,至于怎么保存,大家应该看到规律了,正对角线的坐标x,y相等,以(0,0)开

本文探讨了如何优化存储空间以提高效率。对称矩阵只需存储一半数据,通过a[m][n]=a[n][m]推导另一半。对角矩阵保存非零元素,利用二维数组按对角线组织。稀疏矩阵针对大部分元素为零的情况,采用十字链表结构,方便增删操作。这种存储方式在处理大量零元素的矩阵时尤其有效。
2万+

被折叠的 条评论
为什么被折叠?



