【问题标题】:Running Time of Algorithm to Generate Hadamard Matrix生成 Hadamard 矩阵的算法运行时间
【发布时间】:2016-06-11 23:54:12
【问题描述】:

我正在尝试设计一种算法来使用分而治之的技术生成 Hadamard 矩阵。为此,我决定使用四个递归调用来生成矩阵的每个项,然后在每个步骤中继续递归调用,以获取少一个值的 Hadamard 矩阵。例如,H(3) 分为 4 个 H(2) 项,其中一项为负,依此类推,直到 H(0)。在计算递归关系时,我最终得到了

C(n) = 4C(n-1) + 1.

但是,分而治之是否应该包括输入的除法而不是减 1?但从概念上讲,我认为将矩阵划分为较小矩阵的子集将符合分而治之的要求。无论如何,我最终得到了 4^n 的运行时间。这对我设计的算法准确吗?

【问题讨论】:

    标签: algorithm performance matrix


    【解决方案1】:

    这是准确的。给定n的解释,最终矩阵是2^n-by-2^n,带有4^n元素。涉及m 的重复出现,元素的数量,将是

    T(m) = 4T(m/4) + 1,
    

    使用O(m) 的解决方案。

    【讨论】:

    • 谢谢!所以根据主定理,我设计的算法的运行时间是 n 而不是 4^n?
    • @CS-DS-ES-FS 同样,根据您定义 n 的方式,两者都是正确的。您的算法是渐近最优的。
    猜你喜欢
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2020-01-18
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多