首页 > 其他 > 详细

稀疏矩阵转置

时间:2019-04-04 21:02:29      阅读:125      评论:0      收藏:0      [点我收藏+]

稀疏矩阵的存储是(行,列,数值)的形式,做转置的意义是保持排列顺序(即行顺序下保持列顺序)。需要注意的是,计算机只存储三维数组表 Array[terms],而不存储其他0数字。

朴素算法是,从上到下扫描列数=k的项直到总列数Col,由于原表行号已经保持顺序,所以输出的新表里行数=k,列数顺序。复杂度是o(t*n)即 n列,每列扫描t次注意t可以是m*n数量级的(对应n个Array里面的元素)。

快速算法是,牺牲一定的空间,先扫一遍矩阵,记录下原矩阵每一列所含元素数,则这个数字对应新矩阵不同行之间的间隔是多少,基于此建立每一行的元素的开头位置row_Start,然后再次遍历原矩阵,扭转一下位置填到新矩阵即可。

【行列自身保留的顺序】!!

【矩阵=三元组表】

稀疏矩阵转置

原文:https://www.cnblogs.com/Brucexxx/p/10656823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!