十五、稀疏矩阵的乘法运算 | 您所在的位置:网站首页 › 三个矩阵相乘结果还是矩阵吗 › 十五、稀疏矩阵的乘法运算 |
十五、稀疏矩阵的乘法运算
文章目录
十五、稀疏矩阵的乘法运算题目描述解题思路上机代码
题目描述
数据压缩是提高传输、存储效率一种技术。教材第5章介绍了两种简单的压缩存储方法。 本实验要求实现两个稀疏矩阵相乘积的算法**。其中稀疏矩阵非零元素数量小于100.** 输入: 第1个稀疏矩阵的行数 列数非零元个数(三个数都大于0)三元组第2个稀疏矩阵的行数 列数非零元个数(三个数都大于0)三元组以行为主序输入稀疏矩阵三元组表 输出: 乘积矩阵的行数 列数 非零元个数(三个数都大于0) 三元组 测试输入期待的输出时间限制内存限制额外进程测试用例 13441 1 31 4 52 2 -13 1 24241 2 22 1 13 1 -23 2 43231,2,62,1,-13,2,41秒256KB0 解题思路教材第 100 页指出,为了便于随机存取任意一行的非零元,需要知道每一行的第一个非零元在三元组表中的位置。因此,把指示 “行” 信息的辅助数组 cpot 固定在稀疏矩阵的存储结构中,称这种 “带行链接信息” 的三元组表为行逻辑链接的顺序表。 /* 行逻辑链接顺序表 */ typedef struct { Triple data[1000]; //非零元三元组表 int rpos[1000]; //各行第一个非零元的位置表 int mu, nu, tu; //矩阵的行数、列数和非零元个数 }RLSMatrix;教材第 102 页给出了稀疏矩阵乘法的基本操作描述和算法流程实现。 |
CopyRight 2018-2019 实验室设备网 版权所有 |