為什麼矩陣要進行壓縮儲存? 為了節省空間。
我們對相同的元素或者零不再分配空間,把二維的矩陣壓縮存進一維陣列中
能進行壓縮儲存的矩陣稱為特殊矩陣
特殊矩陣主要包括 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表示...