在递归算法的情况下计算时间复杂度?

时间:2011-11-02 14:18:02

标签: algorithm recursion time time-complexity heapsort

如果在递归算法的情况下如何计算时间复杂度?

例如t(n)= t(3n / 2)+ 0(1)(Heapsort)

4 个答案:

答案 0 :(得分:3)

使用Master Theorem

无论如何,你的等式看起来很糟糕,因为递归调用的输入值高于调用者的输入值,所以你的复杂度是 O(无穷大)

请修理它。

答案 1 :(得分:2)

通常你可以猜出答案并使用归纳来证明它。

但是有一个定理可以解决很多情况,如堆排序,名为Master Theorem:

http://en.wikipedia.org/wiki/Master_theorem

答案 2 :(得分:2)

硕士学位是快速而短暂的方式。但是既然你正在努力学习所有递归函数的复杂性,我宁愿建议你学习递归树的工作,它构成了Master's Theorm的基础。这link继续详细解释。不要盲目地使用师父的理论,而是学习这一点,以便将来更好地理解!这个link about recursion tree也很好读

答案 3 :(得分:0)