矩陣壓縮儲存思路

2021-07-22 16:34:22 字數 464 閱讀 6781

為什麼矩陣要進行壓縮儲存?  為了節省空間。

我們對相同的元素或者零不再分配空間,把二維的矩陣壓縮存進一維陣列中

能進行壓縮儲存的矩陣稱為特殊矩陣

特殊矩陣主要包括   n階對稱矩陣   上三角矩陣(下三角矩陣) 稀疏矩陣

n階對稱矩陣的條件如下: a[i][j]=a[j][i]    1<=i,j<=n

因為是把二維陣列存入一維陣列,所以二維陣列的下標肯定跟一維陣列存在某種關係(稀疏矩陣除外)

設一維陣列下標為k,以n階對稱矩陣為例

當i>=j

k=i(i-1)/2+j-1

當ik=j(j-1)/2+j-1

若是三角矩陣,則可能是上述兩種情況的一種

三元組儲存區格式為(i,j,num)       他們的含義分別為  矩陣中的行,列,值   

設矩陣名為m,三元組名為n,則

n(i,j,num)=(i,j,m(i,j))

矩陣壓縮儲存

在c中矩陣的表示是用二維陣列。那麼首先要搞清楚陣列行列與矩陣行列的對應。在c語言中二維陣列是按行儲存的。即順序儲存每一行。第一行,第二行。最後一行 看一下例子 陣列數量替換成arrs i j 方便說明。int arrs i j test 二維陣列記憶體位置 for i 0 i 3 i 在上例中i表示...

矩陣壓縮儲存

矩陣乘法 原始碼十字鍊錶 const int max size 1000 const int max size of row 100 typedef struct triple typedef struct rltmatrix 三元組順序表 rltmatrix行列交換 重新排序 普通方法 按列查詢 ...

矩陣壓縮儲存

在c中矩陣的表示是用二維陣列。那麼首先要搞清楚陣列行列與矩陣行列的對應。在c語言中二維陣列是按行儲存的。即順序儲存每一行。第一行,第二行。最後一行 看一下例子 陣列數量替換成arrs i j 方便說明。int arrs i j test 二維陣列記憶體位置 for i 0 i 3 i 在上例中i表示...