生成Hadamard矩阵的算法运行时间

时间:2016-02-29 02:46:34

标签: algorithm performance matrix

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

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

但是,分治应该涉及输入的分割而不是减少1?从概念上讲,我认为将矩阵划分为较小矩阵的子集将有资格作为分而治之。无论如何,我最终的运行时间为4 ^ n。这对我设计的算法是否准确?

1 个答案:

答案 0 :(得分:0)

这很准确。鉴于n的解释,最终矩阵为2^n - by - 2^n4^n元素。涉及m(元素数量)的重复将是

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

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