如何计算由递归给出的函数的确切最坏情况运行时间?

时间:2013-10-21 01:15:46

标签: math time-complexity recurrence

我正在尝试计算最坏情况下运行时间的值,这个函数的最坏情况运行时间由此重现给出:

  

T(0)= 0

     

T(n)= n + T(n-1)(如果n> 0)

有人有任何建议如何做到这一点?我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试扩展重现可能会有所帮助,看看你是否发现了一种模式:

  • T(0)= 0
  • T(1)= 1 + T(0)= 1 + 0
  • T(2)= 2 + T(1)= 2 + 1 + 0
  • T(3)= 3 + T(2)= 3 + 2 + 1 + 0

基于此模式,它看起来像T(n)= 0 + 1 + 2 + ... + n。这是高斯制定的一个着名的总和,它解决了n(n + 1)/ 2。因此,我们可以推测T(n)= n(n + 1)/ 2。

你可以通过归纳证明这一点来形式化。作为基本情况,T(0)= 0 = 0(0 + 1)/ 2,所以一切都检出。对于归纳步​​骤,假设T(n)= n(n + 1)/ 2。然后T(n + 1)=(n + 1)+ T(n)=(n + 1)+ n(n + 1)/ 2 =(n + 1)(1 + n / 2)=(n + 1)(n + 2)/ 2 =((n + 1))((n + 1)+ 1)/ 2,也可以检出。

因此,您的确切值为T(n)= n(n + 1)/ 2。

希望这有帮助!