我正在尝试计算最坏情况下运行时间的值,这个函数的最坏情况运行时间由此重现给出:
T(0)= 0
T(n)= n + T(n-1)(如果n> 0)
有人有任何建议如何做到这一点?我不知道如何解决这个问题。
答案 0 :(得分: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。
希望这有帮助!