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)

  • 相关阅读:
    hdu6055(求正方形个数)
    树状数组模板(改点求段 / 该段求点 / 改段求段)
    poj2763(lca / RMQ + 线段树)
    poj3728(lca / tarjan离线)
    JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
    JVM垃圾回收机制
    虚拟机字节码执行引擎
    Java中程序初始化的顺序
    Java中ClassLoader浅析.
    Python中的self
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2096664.html
Copyright © 2011-2022 走看看