稀疏矩阵转置

Posted brucexxx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了稀疏矩阵转置相关的知识,希望对你有一定的参考价值。

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

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

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

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

【矩阵=三元组表】

以上是关于稀疏矩阵转置的主要内容,如果未能解决你的问题,请参考以下文章

稀疏矩阵转置

17 稀疏矩阵转置

数据结构----稀疏矩阵的快速转置

4.3.2 稀疏矩阵转置快速转置

稀疏矩阵的压缩存储及快速转置

用C试一下稀疏矩阵的快速转置