(相关资料图)
1、①三元组表表示的矩阵转置的思想方法 第一步:根据A矩阵的行数、列数和非零元总数确定B矩阵的列数、行数和非零元总数。
2、 第二步:当三元组表非空(A矩阵的非零元不为0)时,根据A矩阵三元组表的结点空间data(以下简称为三元组表),将A的三元组表a->data置换为B的三元组表b->data。
3、 ②三元组表的转置 方法一:简单地交换a->data中i和j中的内容,得到按列优先顺序存储倒b->data;再将b->data重排成按行优先顺序的三元组表。
4、 方法二:由于A的列是B的行,因此,按a->data的列序转置,所得到的转置矩阵B的三元组表b->data必定是按行优先存放的。
5、 按这种方法设计的算法,其基本思想是:对A中的每一列col(0≤col≤a->n-1),通过从头至尾扫描三元组表a->data,找出所有列号等于col的那些三元组,将它们的行号和列号互换后依次放人b->data中,即可得到B的按行优先的压缩存贮表示。
6、 ③具体算法: void TransMatrix(TriTupleTable *b,TriTupleTable *a) {//*a,*b是矩阵A、B的三元组表表示,求A转置为B int p,q,col; b->m=a->n; b->n=a->m; //A和B的行列总数互换 b->t=a->t; //非零元总数 if(b->t<=0) Error("A=0"); //A中无非零元,退出 q=0; for(col=0;coln;col++) //对A的每一列 for(p=0;pt;p++) //扫描A的三元组表 if(a->data[p].j==col){ //找列号为col的三元组 b->data[q).i=a->data[p].j; b->data[q].j=a->data[p].i; b->data[q].v=a->data[p].v; q++; } } //TransMatrix ④算法分析 该算法的时间主要耗费在col和p的二重循环上: 若A的列数为n,非零元素个数t,则执行时间为O(n×t),即与A的列数和非零元素个数的乘积成正比。
本文到此分享完毕,希望对大家有所帮助。
近日,河南省人力资源和社会保障厅印发《河南省公共法律服务专业司法鉴定人职称申报评审标椎(试行)》(以下简称《试行标准》)。这意味着
今年6月份我省水利部门要开工实施的7项重点水利工程,包括汉山水库工程、前坪水库灌区工程、新乡市南水北调配套工程东线项目、三门峡水库清
6月16日,省扫黑除恶斗争领导小组全体会议召开。会议传达了省委书记楼阳生对常态化开展扫黑除恶斗争工作作出的批示,审议工作要点,部署重
6月18日至19日,十一届省委第一轮巡视的15个巡视组集中向40家被巡视单位反馈巡视意见,该轮巡视反馈工作全部完成。按照省委统一部署,该轮
6月20日,第三届跨国公司领导人青岛峰会举行携手跨国公司助力河南更出彩主宾省经贸合作推介会。河南省副省长何金平、山东省副省长孙继业出