时间复杂度T(n)= 2T(n / 3 + 1)+ n

时间:2017-09-20 04:31:04

标签: recursion complexity-theory

所以我开始学习算法课程中的递归,并且很难理解" + 1"对时间复杂性的影响。 如果将其视为2T((n / 3)+1)+ n?

,我该怎样解除递归的绑定?

1 个答案:

答案 0 :(得分:1)

让我们首先反复将更为通用的版本的T(n)替换为自身,然后发现一个模式:

enter image description here

enter image description here

... m替换之后。如您所见,添加术语c的引入确实会使结果更复杂。

m终止的价值是多少?我们假设停止条件为n = d,即T(d) = constant

enter image description here

这已经变得有点笨拙,所以在我们继续之前,让我们用相应的数字代替:a = 2, b = 3, c = 1

enter image description here

分数指数趋于零,只留下n2^m项。以下哪一个占主导地位?

enter image description here

让我们将上述结果与没有“+1”的情况进行比较,即c = 0

enter image description here

  

因此,我们得出结论,加性因子会影响整体时间复杂度。

(注意,加法因子确实对函数的停止条件设置了约束,因为它影响深递归级别的收敛。)