algorithm - 此关系的时间复杂度 - 矩阵链乘法

标签 algorithm recursion big-o time-complexity matrix-multiplication

我认为矩阵链乘法问题的(低效)递归过程可以是这样的(基于 Cormen 中给出的递归关系):

MATRIX-CHAIN(i,j)
    if i == j
        return 0
    if i < j
        q = INF

        for k = i to j-1
            q = min (q, MATRIX-CHAIN(i,k) + MATRIX-CHAIN(k+1, j) + c)  
            //c = cost of multiplying two sub-matrices.

        return q

时间复杂度为:

T(n) = 从 i 到 j 的 k 求和 [T(k) + T(n-k)]

这里,n = 要相乘的矩阵数。

T(n) 的值是多少?如何计算?

最佳答案

这是 http://en.wikipedia.org/wiki/Catalan_number

你可以把递归关系看成做括号。维基页面详细描述了如何得出公式。

关于algorithm - 此关系的时间复杂度 - 矩阵链乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158906/

相关文章:

algorithm - 递归树的时间复杂度

c - 找到许多子数组的开始和结束的算法?

python - 打乱单词的字符,同时保持句子结构和标点符号

c++ - 如何在没有备忘录的情况下使用内存来执行此递归代码?

python - 跳棋算法 : how to reduce nested for loops

c - 用罗马数字表示年份

java - 遇到将字符串转换为 Int 的递归问题

java - 对大 O 表示法感到困惑

c++ - 通过计算步数计算算法复杂度

algorithm - 时间复杂度