码迷,mamicode.com
首页 > 其他好文 > 详细

稀疏矩阵转置

时间:2019-04-04 20:24:24      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:位置   class   end   保留   star   多少   行号   col   lin   

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

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

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

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

【矩阵=三元组表】

稀疏矩阵转置

标签:位置   class   end   保留   star   多少   行号   col   lin   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!