稀疏矩阵的快速转化
来源:互联网 发布:重庆企业seo服务 编辑:程序博客网 时间:2024/04/28 02:49
若有下面这样一个矩阵0013056700
如果按照上篇所用的数据结构存储如下 a:
rowcolvalues[0]021s[1]033s[2]105s[3]116s[4]127转换后的 b:
rowcolvalues[0]015s[1]116s[2]201s[3]217s[4]303设一个变rowsize[ ](转化后的)
rowsize[0]=0,rowsize[1]=1,rowsize[2]=2,rowsize[3]=1,rowsize[4]=1
rowstart[i]=rowstart[i-1]+rowsize[i-1];
rowstart[0]=0;rowstart[1]=1,rowstart[2]=2,rowstart[3]=4,rowstart[4]=5;
由上面两个表我们观察可以看出。a.s[0]放在b中为b.s[2].此时2正是a.s[0]所在列转化成行的开始位置rowstart[2]=2;
此时b.s[2].row=a.s[0].col;b.s[2].col=a.s[0].row;
开始位置便是在B中的位置,然后把开始位置后移一位。
具体代码如下:
spareMatrix fastTranspose(){ spareMatrix b(row ,col,terms);if(terms>0){int * rowsize=new int[col];int * start=new int[col];fill(rowsize,rowsize+col,0);for(int i=0;i<term;i++)rowsize[a.sarray[i].col]++;rowstart=0;for(int i=0;i<col;i++)rowsize[i]=rowsize[i-1]+rowstart[i-1];for(int i=0;i<terms;i++){int j=rowstart[a.sarray[i].col];b.sarray[j].row=a.sarray[i].col;b.sarray[j].col=a.sarray[i].row;b.sarray[j].value=a.sarray[i].value; rowstart[a.sarray[i].col]++;}}}
- 稀疏矩阵的快速转化
- 稀疏矩阵的快速转制
- 矩阵的转化问题【行列互换】(稀疏矩阵)
- 稀疏矩阵的快速转置
- 稀疏矩阵的快速转置
- 稀疏矩阵的快速转置
- 数据结构----稀疏矩阵的快速转置
- 稀疏矩阵的快速转置
- 稀疏矩阵的快速转置
- 稀疏矩阵的(普通/快速)转置
- 稀疏矩阵的快速转置算法
- 稀疏矩阵的快速转置
- 稀疏矩阵的快速转置
- 稀疏矩阵三元组转化
- 稀疏矩阵的压缩储存,稀疏矩阵的普通转置,稀疏矩阵的快速转置
- 【数据结构】稀疏结构及稀疏矩阵的压缩存储,矩阵的(快速)转置
- 稀疏矩阵快速转置
- 稀疏矩阵快速转置
- IPC框架分析 Binder,Service,Service manager
- Sun HotSpot JVM堆大小的调整
- 自动化倚天剑-Qtp(二)
- 【记录】第一天
- 自动化倚天剑-QTP(三)
- 稀疏矩阵的快速转化
- Android应用自动更新功能的代码实现
- IOS成长之路-备份变量名的使用
- DOS的RD命令删除D盘“文件夹1”中的“文件夹2”整个目录
- 设计模式之建造者模式学习
- ExtJS 学习
- 【Ural】1066 数学题 Garland
- js调用.net后台事件,和后台调用前台等方法总结
- 什么时候才可以显示啊!