具有两个参数的函数的时间复杂度是多少?

时间:2016-07-18 18:56:03

标签: algorithm time-complexity

以下方法的时间复杂度是多少?两个参数给我带来了很多困惑。提前致谢。

public int count(int m, int n) {
    if(m == 1 || n == 1) return 1;
    return count(m-1, n) + count(m, n-1);
}

1 个答案:

答案 0 :(得分:3)

这是O(2^(n+m))

可以使用归纳法证明,诱导步骤是:

T(n,m) = T(n-1,m) + T(n, m-1) =(*) 2^(n+m-1) + 2^(n+m-1) = 2*2^(n+m-1) = 2^(n+m)

其中(*)是诱导假设。