第章 数组和广义表.pptVIP

  • 2
  • 0
  • 约1.03万字
  • 约 54页
  • 2020-12-06 发布于黑龙江
  • 举报
(1)稀疏矩阵 (Sparse Matrix) 用三元组表表示的稀疏矩阵及其转置 三元组表稀疏矩阵的转置运算 方法:按照b.data中的三元组的次序,即M的列序,依次在a.data中找到相应的三元组进行转置。 步骤:从k=1开始依次扫描找寻所有列号为k的项,将其行号变列号、列号变行号,顺次存于转置矩阵三元组表。 其时间复杂度为 O ( a.nu* a.tu )。 例:若矩阵有200行,200列,10,000个非零元素,总共有2,000,000次处理。 快速转置算法 方法:按a.data中三元组的次序进行转置,并将转置后的三元组置入b中恰当的位置。 建立辅助数组num和cpot, num[col]表示矩阵第col列中非零元的个数, cpot[col]指示第col列的第一个非零元素在b.data中的恰当位置。 按行扫描矩阵三元组表,根据某项的列号,确定它转置后的行号,查cpot表,按查到的位置直接将该项存入转置三元组表中。 转置时间复杂度为 O(nu+tu+nu+tu)=O(tu)。若矩阵有200列,10000个非零元素,总共需10000次处理。 cpot[1]=1 cpot[col]=cpot[col-1]+num[col-1] 元素结点 right——指向同一行中下一个非零元素的指针(向右域) down——指向同一列中下一个非零元素的指针(向下域) 表头结点 行表头结点 列表头结点

文档评论(0)

1亿VIP精品文档

相关文档