- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]数据结构第5章
j=1; for(k=1; k=A.n; k++) for(i=1; i=A.len; i++) if(A.data[i].col==k) { B-data[j].row=A.data[i].col B-data[j].col=A.data[i].row; B-data[j].e=A.data[i].e; j++; } } } 【算法5.1 基于稀疏矩阵的三元组表示矩阵的转置算法】 算法的时间耗费主要是在双重循环中,其时间复杂度为O(A.n×A.len), 最坏情况下,当A.len=A.m×A.n时,时间复杂度为O(A.m×A.n2)。采用正常方式实现矩阵转置的算法时间复杂度为O(A.m×A.n)。 方法二: 依次按三元组表A的次序进行转置,转置后直接放到三元组表B的正确位置上。这种转置算法称为快速转置算法。 为了能将待转置三元组表A中元素一次定位到三元组表B的正确位置上,需要预先计算以下数据: (1) 待转置矩阵source每一列中非零元素的个数(即转置后矩阵dest每一行中非零元素的个数)。 (2) 待转置矩阵source每一列中第一个非零元素在三元组表B中的正确位置(即转置后矩阵dest每一行中第一个非零元素在三元组B中的正确位置)。 为此, 需要设两个数组num[ ]和position[ ],其中num[col]用来存放三元组表A中第col列中非零元素个数(三元组表B中第col行非零元素的个数),position[col]用来存放转置前三元组表A中第col列(转置后三元组表B中第col行)中第一个非零元素在三元组表B中的正确位置。 num[col]的计算方法: 将三元组表A扫描一遍,对于其中列号为k的元素,给相应的num[k]加1。 position[col]的计算方法: position[1]=1, position[col]=position[col-1]+num[col-1], 其中2≤col≤A.n。 图5.16 图5.10中矩阵M的num[col]和position[col]的值 将三元组表A中所有的非零元素直接放到三元组表B中正确位置上的方法: position[col]的初值为三元组表A中第col列(三元组表B的第col行)中第一个非零元素的正确位置,当三元组表A中第col列有一个元素加入到三元组表B时,则position[col]=position[col]+1,即: 使position[col]始终指向三元组表A中第col列中下一个非零元素的正确位置。 具体算法如下: FastTransposeTSMatrix (TSMatrix A, TSMatrix * B) { /*基于矩阵的三元组表示, 采用快速转置法, 将矩阵A转置为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; colA.n; col++) /*求col列中第一个非零元素在B.data[ ]中的正 确位置 */ position[col]=position[col-1]+num[col-1]; for(p=1; pA.len.p++) { col=A.data[p].col; q=position[col];
您可能关注的文档
- [理学]应用数理统计基础习题解答第二至五章.pdf
- [理学]徐寿昌有机化学第6章.ppt
- [理学]弹性力学课后习题全解111.doc
- [理学]微分方程建立模型-2011重科暑假培训1.ppt
- [理学]微分方程模型——人口模型、传染病模型.ppt
- [理学]微分方程第1章2.ppt
- [理学]微机原理022-sjj.ppt
- [理学]微机原理与应用——51课后答案.doc
- [理学]微机原理与接口技术复习资料.doc
- [理学]微机原理与接口课件第一二章.pdf
- 《GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业》.pdf
- GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业.pdf
- GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 中国国家标准 GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 《GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法》.pdf
- 《GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数》.pdf
- GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数.pdf
- 《GB/T 17215.686-2024电测量数据交换 DLMS/COSEM组件 第86部分:社区网络高速PLCISO/IEC 12139-1配置》.pdf
- GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜.pdf
- 《GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜》.pdf
文档评论(0)