#include<iostream>
#include<vector>
template<classT>
structTriple
{
T_value;
size_t_row;
size_t_col;
Triple(constT&t=T(),size_trow=0,size_tcol=0)
:_value(t)
,_row(row)
,_col(col)
{}
};
template<classT>
classSpareMat..
分类:
编程语言 时间:
2016-05-11 20:11:50
阅读次数:
185
稀疏矩阵:M*N的矩阵,矩阵中的有效值的个数远小于无效值的个数,而且这些数分布没有规律。压缩存储的值极少,采用三元组(value,row,col)存储每一个有效值。三元组按照在原矩阵的位置,按照行优先存储。构造函数:SparseMatrix(T*a,size_tm,size_tn,constT&invalid)
:_..
分类:
其他好文 时间:
2016-04-19 00:50:24
阅读次数:
227
使用两种方法将稀疏矩阵快速转置#include<iostream>
#include<vector>
usingnamespacestd;
template<classT>
structTriple//三元组
{
size_trow;
size_tcol;
T_value;
};
template<classT>
classSparseMatrix
{
public:
SparseMatrix(T*arr,size..
分类:
其他好文 时间:
2016-03-31 19:04:45
阅读次数:
175
说明:稀疏矩阵的快速转置算法的核心在于,用一个数组num记录原来矩阵中的每列非零元个数,用另一个数组cpos来记录原矩阵每列第一个非零元在新矩阵中的位置,以此来达到快速转置的目的。用这样的方法,主要是希望,矩阵转置后,存储顺序依然是按照行来存储的。1.实现及代码注释..
分类:
其他好文 时间:
2015-09-28 06:39:42
阅读次数:
232
当矩阵 的 有用信息非常少时,我们考虑将矩阵压缩存储。这就涉及到 特殊矩阵 和 稀疏矩阵。
特殊矩阵 指的是 有一定规律的 矩阵,这个矩阵 我们 只存储 部分 有用信息,其余的信息 可以通过 公式 转换 求得。例如 对称矩阵,我们按行存储主对角线以下(包括主对角线)的元素,其余元素 我们可以通过 下面的公式求得。
稀疏矩阵,指的事没有一定规律的矩阵,并且 有用信息总数/矩阵总数 小于等于 0...
分类:
其他好文 时间:
2015-03-17 16:02:34
阅读次数:
233