数据结构第4章(免费阅读).ppt

如果稀疏矩阵A?m ? n用行三元组表A表示,问题会变得相对复杂一些。对A实施转置运算后,其转置矩阵应仍采用行三元组表表示。图4-14(b)是图4-12的稀疏矩阵A的转置矩阵B的行三元组表。因三元组表用一维数组表示,所以,我们分别称它们为数组A和数组B。下面是实现矩阵转置的几种可能的做法: 方法一:将数组A的元素的行、列号交换后保存到数组B中(见图4-14(a)),然后对数组B按行号进行排序,便得到A的转置矩阵B的行三元组表(见图4-14(b))。这里,矩阵转置的时间取决于排序的时间。典型的排序算法的时间复杂度为O(t2)或O(t?lb?t),t为非零元素的个数(详见第11章内容)。 图4-14 稀疏矩阵的转置:方法一 (a) 交换图4-12(b)三元组表A的行、列号;(b) A的转置矩阵的行三元组表B 方法二:对数组A扫描n遍,第一遍取出矩阵A的第0列元素,得到转置矩阵B的第0行元素,第i遍扫描取出A的第i-1列元素,得到B的第i-1行元素,依此存入数组B中。此方法的时间复杂度为O(n*t)。t为非零元素的个数。 以上两种方法都比较费时,下面介绍被称为快速转置的方法三。 方法三:快速转置算法。 快速转置算法通过增加适量的存储空间,达到节省时间的目的。 快速转置算法使用n个指针k[n]

文档评论(0)

1亿VIP精品文档

相关文档