zoukankan      html  css  js  c++  java
  • 软件设计师1990年下午试题2(流程图解析)

    [问题] 

    将一个 m×n 的矩阵 X 转置后存放到矩阵 Y 中,其计算复杂度为 O(m*n)。对稀疏矩阵来说,可以用紧凑的存贮方式来减少所需的存贮量,并降低计算复杂度。

    已知有 t(t>0) 个非零元素的 m×n 稀疏矩阵 W(每行每列至少有一个非零元素)以紧凑方式存放在数组 X[l:t,1:3]中。X 中某行的三个值为(i,j,v)时表示在 W 的第 i 行第 j 列有一个非零元素 v。假定 X 中的元素已按行号列号递增排序。现要求将 X 转置后以紧凑表示形式存放在数组 Y[l:t,1:3] 中,并且 Y 也按行号列号递增排序。

    下面描述了两种紧凑的稀疏矩阵的转置算法: 

    算法一见流程图a

    算法二见流程图b。争扣外图中:数组元素 S[i] 用来存放X中列号为 i 的元素个数,数组元素 U[j] 用来计算X中第 j 列元素在Y中的行号。 

     

    [问题1] 

    填充流程图 a 和流程图 b 中的 ①~⑤,使之实现相应的算法。
    [问题2] 

    分别写出算法一和算法二的计算复杂度。

     

    答案:

    [问题1]

    ① k+1→k ② X[j,2] ③ U[X[i,2]] ④ U[X[i,2]] ⑤ i>t
    [问题2] 算法1的复杂度为 O(n*t);算法2的复杂度为 O(n+t)

  • 相关阅读:
    vue中局部封装axios
    react中key的使用
    react中component存在性能问题
    react中setState用法
    常用函数
    常用正则匹配整理
    Linux设置DNS server
    [多线程]wait和notify
    [多线程]脏读
    [多线程]线程基础(对象锁、class锁、同步、异步)
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2096664.html
Copyright © 2011-2022 走看看