主方法和递归树

这真的是2个很牛叉的算法分析方法,你可以用主方法瞬间估算出算法的复杂度

Master Method 

T(n) = aT(n/b)+h(n)

a >=1 ; b >1 ; h(n) : 不参与递归的复杂度函数

判断n^log (a)与h(n)的大小关系

= Θ(h(n)) :该方法的复杂度为   Θ(h(n)*lg(n))

> Θ(h(n)) :该方法的复杂度为   Θ(n^(log a/log b))

< Θ(h(n)) :该方法复杂度为 Θ(h(n))

这样可以帮助你快速的分析出你得算法的复杂度是否符合要求。

 

Recursion Tree Method

主要是把递归式转换成树的形式,则利用树的数学概念和特性可以知道树高和叶子结点个数,从而可以求解出算法的复杂度。当然这种方法更合适你去验证自己的结论,因为是严格的证明过程。

你可能感兴趣的:(主方法和递归树)