首页 > 试题广场 >

有一个 100 × 90 的稀疏矩阵,非

[单选题]

有一个 100 × 90 的稀疏矩阵,非 0 元素有 10 ,设每个整型数占 2 个字节,则用三元组表示该矩阵时,所需的字节数是

  • 20
  • 66
  • 18 000
  • 33
10个非零元素:10*3*2=60字节
剩下的6个字节:分配给行数、列数、总元素数  即3*2=6字节
总字节数目:60+6=66字节

发表于 2017-08-28 10:17:32 回复(0)
稀疏矩阵可采用压缩存储,仅存储其中的非零元素。存储时,除了记下非零元素的值外,还要记录其行标i和列标j,即用(i,j,aij)三元组表示。由此可得出如下结论:稀疏矩阵可由表示非零元素的三元组及其行、列数唯一确定。
三元组结构:
typedef struct{
int i,j;#行标和列标
ElemType e;#元素值
} Triple;
非零 10*2*3加上存储非零个数行列的6个字节

编辑于 2017-08-11 08:20:27 回复(0)

三元组方式存储数据的策略是只存储非零元素。但是稀疏矩阵中非零元素的分布是没有任何规律的,在这种情况下,存储方案是:
1.存储非零元素

2.同时存储该非零元素所对应的行下标和列下标

3.稀疏矩阵中的每一个非零元素需由一个三元组(i, j,aij)唯一确定,稀疏矩阵中的所有非零元素构成三元组线性表,三元组中的i就是行下标,j是列下标,aij是对应的元素值。

此题10个非零元素:10*3*2=60字节。
剩下的6个字节:分配给行数、列数、总元素数  即3*2=6字节
总字节数目:60+6=66字节

编辑于 2019-03-02 14:02:31 回复(0)
每个元素要用行号,列号,元素值来表示,在用三元组表示稀疏矩阵,还要三个成员来记住,矩阵的行数列数,总的元素数,所以所需的字节数是10*(1+1+1)*2+3*2=66
发表于 2019-09-25 07:51:15 回复(0)

有行列就可以得出总数,所以65也是对的吧

发表于 2019-08-17 21:21:37 回复(0)
基本信息:行数+列数+元素个数
数据存储:元素个数 * (行,列,值)
发表于 2019-06-16 10:42:18 回复(0)