



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1/63矩阵的转置算法 T = 0 0 -3 0 0 1512 0 0 0 18 0 9 0 0 24 0 0 0 0 0 0 0 -7 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 M = 0 12 9 0 0 0 0 0 0 0 0 0 0 0-3 0 0 0 0 14 0 0 0 24 0 0 0 0 0 18 0 0 0 0 015 0 0 -7 0 0 02/63 int amn,bmn; for ( i =1; i=m; +i ) for (j = 1; j=n; +j ) bji =aij; 在二维数组存储方式下, 矩阵转置的算法算法的时间复杂度为O(
2、m*n)3/63i j e12345678M.dataM.muM.nuM.tu3 1 -36 1 151 2 125 2 181 3 94 3 246 4 -73 6 14678i j e12345678T.dataT.muT.nuT.tu2 1 124 6 -71 3 -33 4 241 6 153 1 96 3 142 5 18768在三元组顺序表存储方式下, 矩阵转置的算法4/631 2 121 3 93 1 -33 6 144 3 245 2 186 1 156 4 -7i j vi j v3 1 -32 5 181 3 -36 1 151 6 51 2 122 1 125 2 181
3、 3 93 1 94 3 243 4 246 4 -74 6 -73 6 146 3 14M.dataT.data第一次扫描查找第1列元素第一次扫描结束第二次扫描结束第二次扫描查找第2列元素第三次扫描查找第3列元素第四次扫描查找第4列元素第五次扫描查找第5列元素第六次扫描查找第6列元素 转置运算算法图示5/63Status TranMatrix(TSMatrix M, TSMatrix &T) /采用三元组表存储稀疏矩阵,求M的转置矩阵T T.mu=M.nu; T.nu=M.mu; T.tu=M.tu; if (T.tu) q=1; / q为当前三元组在T.data 存储位置(下标) for
4、(col=1; col=M.nu; +col) for (p=1;p=M.tu;+p) /p为扫描M.data“指示器” if (M.datap.j= =col) T.dataq.i =M.datap.j; T.dataq.j=M.datap.i; T.dataq.e=M.datap.e; +q; /if return OK;/ TransposeSMtrix 算法5.16/63时间复杂度分析 转置运算算法1的时间复杂度为O(nutu) 非零元的个数tu和矩阵元素个数munu 同数量级时,转置运算算法的时间复杂度为O( mununu)。算法一般用于tu munu的情况7/63i j e1234
5、5678M.dataM.muM.nuM.tu3 1 -36 1 151 2 125 2 181 3 94 3 246 4 -73 6 14678i j e12345678T.dataT.muT.nuT.tu2 1 124 6 -71 3 -33 4 241 6 153 1 96 3 142 5 18768 矩阵快速转置算法8/63colnumcolcpotcol1 2 3 4 5 6 228110127853 numcol:存储M第col列非零元个数 cposcol:存储M第col列第一个非零元 在T.data中的位置 cposcol的计算方法: cpos1=1 cposcol=cposcol
6、-1+numcol-1 2 col n12345678M.dataM.muM.nuM.tu3 1 -36 1 151 2 125 2 181 3 94 3 246 4 -73 6 14678辅助向量num 、cpos 9/631 2 121 3 93 1 -33 6 144 3 245 2 186 1 156 4 -7colnumcolcpotcol1 2 3 4 5 6 228110135278i j vi j vM.dataT.data1 2 122 1 12第2列第一个非零元在b中的位置1 3 9第3列第一个非零元在b中的位置3 1 93 1 -31 3 -33 6 146 3 144
7、3 243 4 245 2 182 5 186 1 151 6 156 4 -74 6 -74第2列第二个非零元在b中的位置65第4列第二个非零元在b中的位置第1列第一个非零元在b中的位置2793第6列第一个非零元在b中的位置扫描M.data实现M到T 的转置810/63Status FastTransSMatrix(TSMatrix M, TSMatrix &T) /采用三元组顺序表存储稀疏矩阵,求M的转置矩阵T T.mu=M.nu; T.nu=M.mu; T.tu=M.tu; if (T.tu) for (col=1; col=M.nu; +col) numcol=0; /求M中每一列非零元个数 for (t=1; t=M.tu; +t) +numM.datat.j; /求第 col列中第一个非零元在T.data中的序号 cpot1=1; for(col=2; col=M.nu; +col) cpotcol=cpotcol-1+numcol-1;11/63 for(p=1; pM.tu; +p) col=M.datap.j; q=cpotcol; T.dataq.i=M.datap.j; T.dataq.j=M.datap.i; T.dataq.e=M.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七节 综合实践活动-学生周末时间分配调查表说课稿-2025-2026学年初中信息技术河大音像版2020七年级下册-河大音像版2020
- 2025科技园区租赁合同
- 高中政治统编版(2019)必修一教学设计+教学设计
- 云南省昆明市黄冈实验学校高中生物必修三教学设计
- 油墨厂乙二醇乙醚存储规章
- 陕西省蓝田县焦岱中学高一上学期政治教学设计(必修一)
- 活动2 IP地址与域名说课稿-2025-2026学年初中信息技术人教版新疆专用七年级下册-人教版新疆专用
- 家居产品质量监督检验合同
- 江苏省徐州市八年级政治下册 第六单元 复兴中华 第18课 民族情 民族魂 第2框 五十六个民族是一家说课稿 苏教版
- 2023三年级英语上册 Unit 1 Hello The fourth period (第四课时)说课稿 人教PEP
- 幼儿园大班五大领域教案
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- 人教版四年级数学上册全册电子教案
- 护理人员对特殊患者的护理
- 拖欠工资催款函
- 新课标-人教版数学六年级上册第二单元《位置与方向(二)》教材解读
- 2024年自动化设备主管第一季度工作回顾以及反思
- GB/T 10599-2023多绳摩擦式提升机
- 跨境电商客服(双语) 课件 项目三 售中 1 General Introduction
- R语言入门(经典)
- 2023-2024学年安徽省淮南市东部地区九年级(上)第一次月考数学试卷(含解析)
评论
0/150
提交评论