递归函数的时间复杂度(大O)是多少?

时间:2017-07-08 16:41:10

标签: algorithm recursion

递归函数是否具有它自己的时间复杂度。 就像for循环的时间复杂度一样,循环“' n'时间是大O(n)。 类似地,递归函数具有固定的时间复杂度,或者它取决于问题。

2 个答案:

答案 0 :(得分:2)

另外,递归函数如下:

func linear(n):
    return (n <= 1) ? 1 : n * linear(n-1)

具有复杂性O(n)。

但是在这个例子之后

func exponential(n):
    if n <= 1: return 1
    exponential(n-1)
    exponential(n-1)

你可以认为它会降低2n,尽管真正的复杂度是O(2 ^ n)

This graph image would make more clear

答案 1 :(得分:0)

您可以使用master theorem。它有助于确定递归函数的时间复杂度。