7 稀疏矩陣的乘法運算

2021-08-10 22:16:44 字數 1224 閱讀 2840

資料壓縮是提高傳輸、儲存效率一種技術。教材第5章介紹了兩種簡單的壓縮儲存方法。

本實驗要求實現兩個稀疏矩陣相乘積的演算法。其中稀疏矩陣非零元素數量小於100.

輸入:

第1個:

稀疏矩陣的行數

列數 非零元個數(三個數都大於0)

三元組

第2個:

稀疏矩陣的行數

列數 非零元個數(三個數都大於0)

三元組

以行為主序輸入稀疏矩陣三元組表

輸出:

乘積矩陣的行數

列數 非零元個數(三個數都大於0)

三元組測試用例:

輸入:

3 4

4 1 1 3

1 4 5

2 2 -1

3 1 2

4 2

4 1 2 2

2 1 1

3 1 -2

輸出:

3 2

3 1,2,6

2,1,-1

3,2,4

#include

#include

using namespace std

;struct matrix

lists[100];

};void matrixmul(matrix&a_matrix, matrix&b_matrix, matrix&c_matrix)

; for (int i = 1

; i <= a_matrix.nums; i++)

}memset(expt, 0, sizeof(expt));

newrow = a_matrix.lists[i].row

; }

for (int j = 1

; j <= b_matrix.nums; j++)

if (a_matrix.lists[i].col == b_matrix.lists[j].row)

expt[b_matrix.lists[j].col] += a_matrix.lists[i].vol*b_matrix.lists[j].vol

; }

for (int i = 1

; i <= b_matrix.cols; i++)

}c_matrix.nums = nnt - 1;}

int main()

稀疏矩陣的乘法

1492.稀疏矩陣的乘法 時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述計算兩個稀疏矩陣的乘法 輸入首先輸入第乙個矩陣的行數和列數,再輸入該矩陣的三元組形式,以0 0 0結束 然後輸入第二個矩陣的行數和列數,再輸入該矩陣的三元組形式,以0 0 0結束 輸出兩個矩陣相乘後得到...

稀疏矩陣儲存 轉置 乘法運算

使用順序儲存結構儲存稀疏矩陣,並實現轉置和乘法運算。include stdio.h include stdlib.h include string.h 順序結構的稀疏矩陣 轉置 乘法 define xishu max 100 define xishu increment 100 typedef st...

五 1 1 稀疏矩陣乘法的快速運算

有矩陣m和n,都是用三元組壓縮儲存,設計高效率演算法求矩陣m n得到的矩陣q 也用三元組壓縮儲存 假設矩陣m n q 如下 那麼得到的矩陣q有三行三列,第一行中的元素有這樣的關係 所以我們可以這樣,在遍歷到m11時,由於n11,n12,n13是在順序表中連續排列的,所以我們可以建立乙個3個累加器 i...