資料壓縮是提高傳輸、儲存效率一種技術。教材第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...