對於那些零元素數目遠遠多於非零元素數目,並且非零元素的分布沒有規律的矩陣稱為稀疏矩陣(sparse)。
人們無法給出稀疏矩陣的確切定義,一般都只是憑個人的直覺來理解這個概念,即矩陣中非零元素的個數遠遠小於矩陣元素的總數,並且非零元素沒有分布規律。
由於稀疏矩陣中非零元素較少,零元素較多,因此可以採用只儲存非零元素的方法來進行壓縮儲存。
由於非零元素分布沒有任何規律,所以在進行壓縮
儲存的時侯需要儲存非零元素值的同時還要儲存非零元素在矩陣中的位置,即非零元素所在的行號和列號,也就是在儲存某個元素比如aij的值的同時,還需要存
儲該元素所在的行號i和它的列號j,這樣就構成了乙個三元組(i,j,aij)的線性表。
packageexample;
public
class
test,,,
,,
};int b=new
int[n+1][3];
b[0][0]=rows; //
表示此矩陣的行數
b[0][1]=cols; //
表示此矩陣的列數
b[0][2]=n; //
表是非零的數目
yasuo(a,b,rows,cols);
for(int i=0;i)
}
private
static
void yasuo(int a, int b, int rows, int
cols) }}
}}/*
6 6 8
1 1 25
1 4 32
1 6 -25
2 2 33
2 3 77
3 4 55
5 1 101
6 3 38
*/
稀疏矩陣的壓縮矩陣
如果乙個矩陣中的大部分元素為零,稱為稀疏矩陣。對於稀疏矩陣而言,時間儲存的資料項很少,如果在程式中使用傳統的二維陣列方式來儲存,則十分浪費儲存空間,且矩陣越大,資源浪費越嚴重。為提記憶體空間利用率,可利用三項式 3 tuple 的資料結構,即把乙個非零項用 i,j,item value 來表示。其中...
稀疏矩陣的壓縮
稀疏矩陣的特點 m n矩陣,矩陣中有效值的個數遠遠小於無效值的個數,並且這些資料的分布沒有規律。例如下面的矩陣 稀疏矩陣的壓縮儲存 壓縮矩陣值儲存極少數的有效資料。使用三元組來儲存每乙個資料,三元組資料按照矩陣中的位置,以行優先順序依次存放。則上述矩陣的儲存結構為 三元組結構 三元組的定義 temp...
稀疏矩陣的壓縮儲存
include include using namespace std templateclass sparsematrix sparsematrix 訪問稀疏矩陣中row行col中的元素 t access int row,int col it return invalid for size t i...