//基于矩阵的三元组表示,将矩阵A转置为矩阵BFastTransposeTSMatrix(TSMatrix A,TSMatrix *B){ int col,t,p,q; int num[MAXSIZE],position[MAXSIZE]; B->len=A.len;B-N=A.m;B->m=A.n; if(B->len) { for(col=1;col<=A.n;col++) num[col]=0; for(t=1;t<=A.len;t++) num[A.data[t].col]++; //采用数组下表计数法计算每一列的非零元素个数 position[1]=1; for(col=2;col<=A.n;col++) //求col列中第一个非零元素在B.data[ ]中的正确位置 position[col]=position[col-1]+num[col-1]; for(p=1;p<=A.len;p++) //将表A从头至尾扫描一次,实现矩阵转置 { col=A.data[p].col;q=position[col]; B->data[q].row=A.data[p].col; //1 B->data[q].col=A.data[p].row; //2 B->data[q].e=A.data[p].e; //3 1、2、3为行列互换,元素赋值 position[col]++; //指向下一个列号为col的非零元素在表B中的存放位置 } }}
【稀疏矩阵一次定位快速转置算法】
推荐阅读
- 阿里云服务器使用nginx部署vue,第一次正常访问,刷新的时候404
- 住房公积金多久可以提取一次呢?
- 分享一次靶场渗透
- 第一次见面应该送什么礼物
- 比亚迪几年换一次电池?
- 新生儿一个小时醒一次
- 一次关于架构的“嘴炮”
- 羊水少多久复查一次
- 芝奇|芝奇发布超低延迟64GB DDR5内存:CL28世界第一次
- 固态硬盘|10年质保 日本推出超耐用的SSD硬盘:一辈子只能写入一次