| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 649 人关注过本帖
标题:稀疏矩阵压缩算法严蔚敏的算法详解
取消只看楼主 加入收藏
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:84.38%
收藏
已结贴  问题点数:50 回复次数:4 
稀疏矩阵压缩算法严蔚敏的算法详解
程序代码:
   5.2.2 稀疏矩阵的压缩存储方法

 一、三元组顺序表


 算法 5.1
  void FastTransposeSMatrix(TSMatrix M, TSMatrix &T) 
 {
  T.rows = M.cols;
  T.cols = M.rows;
  T.terms = M.terms;
  if (T.terms) {
   for (col=1; col<=M. cols; ++col)
    num[col] = 0;
   for (t=1; t<=M. terms; ++t)
    ++num[M.data[t].j];      // 我就是这里看不明白。
   rpos[1] = 1;
   for (col=2; col<=M. cols; ++col)
    rpos[col] = rpos[col-1] + num[col-1];
              // 
   for (p=1; p<=M.terms; ++p) {  // 
    col = M.data[p].j; q = rpos[col];
    T.data[q].i =M.data[p].j;
    T.data[q].j =M.data[p].i;
    T.data[q].e =M.data[p].e;
    ++rpos[col]; 
   } // for
  } // if
 } // FastTransposeSMatrix 

最好是附上代码有详解的注解
搜索更多相关主题的帖子: 矩阵 
2012-12-17 11:39
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用yaobao在2012-12-17 12:06:41的发言:

不懂啊,我才开始学严蔚敏的《数据结构》

不懂就不给分哈

认为事物非黑即白是缺智慧的表现……
2012-12-17 12:31
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
谁知道告诉我啊。

认为事物非黑即白是缺智慧的表现……
2012-12-17 15:55
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用小小战士在2012-12-17 16:07:00的发言:

压缩存储就是数据按位存储吗?你这个程序有没有完整的代码,有很多函数之外的变量啊

是关键算法的伪代码。完整的代码肯定不是这样的。她讲的我能懂,就是这几代码要研究研究,就是教程上的这几行代码。

认为事物非黑即白是缺智慧的表现……
2012-12-17 17:41
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用神龙赖了在2012-12-17 18:50:40的发言:

问题是我们没看过全部代码,也不知道它要干神马...不过要懂这个又要把全部的代码看一遍,
好吧建议你还是自己先研究研究吧...

木有全部代码啊,这就是全部代码,数据结构教程里的原型啊,“5.2.2 稀疏矩阵的压缩存储方法 ”// 采用三元组顺序表存储表示,求稀疏矩阵M的转置矩阵 T
程序代码:
   5.2.2 稀疏矩阵的压缩存储方法

 一、三元组顺序表


 算法 5.1
  void FastTransposeSMatrix(TSMatrix M, TSMatrix &T) 
 {
  // 采用三元组顺序表存储表示,求稀疏矩阵M的转置矩阵 T
  T.rows = M.cols;
  T.cols = M.rows;
  T.terms = M.terms;
  if (T.terms) {
   for (col=1; col<=M. cols; ++col)
    num[col] = 0;
   for (t=1; t<=M. terms; ++t)
    ++num[M.data[t].j];      // 求 M 中每一列所含非零元的个数
   rpos[1] = 1;
   for (col=2; col<=M. cols; ++col)
    rpos[col] = rpos[col-1] + num[col-1];
              // 求T中每一行的第一个非零元在T.data中的序号
   for (p=1; p<=M.terms; ++p) {  // 转置矩阵元素
    col = M.data[p].j; q = rpos[col];
    T.data[q].i =M.data[p].j;
    T.data[q].j =M.data[p].i;
    T.data[q].e =M.data[p].e;
    ++rpos[col]; 
   } // for
  } // if
 } // FastTransposeSMatrix

  上述算法的时间复杂度为O (M.cols+M.terms)。 

认为事物非黑即白是缺智慧的表现……
2012-12-17 19:33
快速回复:稀疏矩阵压缩算法严蔚敏的算法详解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073428 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved