大O - 递归代替乘法

时间:2017-01-22 22:35:07

标签: java recursion big-o

使用替换乘法的方法。

public static int mult(int num, int repeat){
        if (repeat == 0) return 0;
        if (repeat == 1) return num;
        return num + mult(num, repeat - 1); 
    }

就时间和空间复杂性而言,这是O(k)时间,其中k是重复和O(1)空间?

1 个答案:

答案 0 :(得分:3)

这是O(K)时间,因为您每repeat调用此函数一次,并且每次调用都是O(1)。但是,在你达到终止条件之前(没有尾调用递归优化),它也是O(k)空间你将拥有k个堆栈帧。