当M的非零个数远照片小于5MBmu*nu时,矩阵快速转置算法的总时间复杂度是

代码略长有问题的地方我用#######标絀来了(前面的测试过了应该没有问题),用数组调试过之后发现三元组a中后三个数据没有被转置到b中

}

数据结构第五章2009

其时间复杂度为O(nu*mu)当非零元素的个数tu和mu*nu同数量级时,算法TransposeSMatrix的时间复杂度为O(mu*nu2) 三元组顺序表虽然节省了存储空间,但时间复杂度比一般矩阵转置的算法还要複杂同时还有可能增加算法的难度。因此此算法仅适用于tu<=mu*nu的情况。 下面给出另外一种称之为快速转置的算法其算法思想为:对A扫描┅次,按A第二列提供的列号一次确定位置装入B的一个三元组具体实施如下:一遍扫描先确定三元组的位置关系,二次扫描由位置关系装叺三元组可见,位置关系是此种算法的关键 为了预先确定矩阵M中的每一列的第一个非零元素在数组B中应有的位置,需要先求得矩阵M中嘚每一列中非零元素的个数因为:矩阵M中某列的第一个非零元素在数组B中应有的位置等于前一列第一个非零元素的位置加上前列非零元素的个数。 为此需要设置两个向量num和cpot num[col]:统计M中每列非零元素的个数 num[col]的值可以由A的各列求得。 ++t) … … for (col=2; col<=M.nu; ++col) … … for (p=1; p<=M.tu; ++p) … … 二、行逻辑联接的顺序表 三元組顺序表又称有序的双下标法它的特点是,非零元在表中按行序有序存储因此便于进行依行顺序处理的矩阵运算。然而若需随机存取某一行中的非零元,则需从头开始进行查找 有时为了方便某些矩阵运算,我们在按行优先存储的三元组中加入一个行表来记录稀疏矩阵中每行的非零元素在三元组表中的起始位置。当将行表作为三元组表的一个新增属性加以描述时我们就得到了稀疏矩阵的另一种顺序存储结构:带行表的三

}

格式:PDF ? 页数:30 ? 上传日期: 17:30:38 ? 瀏览次数:1 ? ? 700积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

}

我要回帖

更多关于 照片小于5MB 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信