稀疏矩陣轉置矩陣

2021-09-28 19:28:40 字數 1342 閱讀 3833

num:矩陣a中某列的非零元素的個數

cpot:初值表示矩陣a中某列第乙個非零元素在b中的位置,並有如下遞推

cpot[1]=0; \\ cpot[col]=cpot[col-1]+num[col-1]; 2<=col<=nu \end\right.

;const

int maxterm =

100;

struct sparsematrix

;void

trans2

(sparsematrix &a, sparsematrix &b)

;void

print

(sparsematrix a)

;int

main()

,,,,

},5,

4,5}

; sparsematrix b;

trans2

(a, b)

;print

(b);

return0;

}void

trans2

(sparsematrix &a, sparsematrix &b)

, cpot[maxterm]=;

b.mu = a.nu; b.nu = a.mu; b.tu = a.tu;

for(i =

0; i < a.tu; i++

) cpot[1]

=0;for

(i =

2; i <= a.nu; i++

) cpot[i]

= cpot[i -1]

+ num[i -1]

; cout<<

"num"

;for

(int i=

0;i) cout<

cout<<

"cpot"

<

for(

int i=

0;i) cout<

<<

" ";

cout<

for(i =

0; i < a.tu; i++)}

void

print

(sparsematrix a)

}根據上面**的例子進行解釋:

num為0,2,0,1,2

cpot為0,0,2,2,3

num的存在只是為了計算出cpot,這是累加法,每次計算完後cpot[j]++是因為如果第一列有兩個非零數,第乙個數字已經佔了b矩陣的第乙個,那麼第二個數字只能佔b矩陣的第二個。

稀疏矩陣轉置

輸出稀疏矩陣的轉置矩陣。行列均不大於20 第一行輸入兩個正整數n和m,分別表示矩陣的行數和列數,然後輸入矩陣三元組,最後輸入 0 0 0 表示結束輸入。轉置後的矩陣。include include define maxsize 100 typedef struct triple typedef st...

稀疏矩陣的轉置(矩陣轉置和快速轉置)

實現矩陣的轉置 1.將矩陣的行列值相互轉換。2.將每個三元組中的i和j交換。3.重排三元組之間的次序便可實現矩陣的轉置。void transposesmatrix tsmatrix m,tsmatrix t return transposesmatrix快速轉置的原理是 如果能預先確定矩陣m中每一列...

稀疏矩陣的轉置

稀疏矩陣的轉置 使用了兩個輔助陣列 num num j 矩陣a中第j列非零元素的個數 cpot cpot j 矩陣a中第j列的第乙個非零元素在其轉置矩陣b的三元組順序表的位置。推出2個規則 1 cpot 1 1 2 cpot j cpot j 1 num j 1 演算法思路 根據1,2規則計算num...