递归式的求解

最近在刷软考题。。这个递归式求时间复杂度一直很绕。。网上百度了下,有主方法、递归树法、数学归纳法等等、、


下面针对形如  T(n) = aT(n/b)+f(n) 递归式的求解做个归纳总结

第一步:观察f(n)中有没有对数因子 比如f(n)=n2lgn 此类就含有。。

    如果有的话:T(n) = aT(n/b)+lgkn   那么时间复杂度为O( nlogbalgk+1n )

第二步:没有的情况: 通过比较nlogba 和 f(n)多项式的大小

      如果nlogba >f(n) ,则时间复杂度为O( nlogba)

      如果nlogba <f(n) ,则时间复杂度为O(f(n))

简单记忆:如果f(n)含对数因子 复杂度幂加一 如果不含对数因子,复杂度取大的

原文地址:https://www.cnblogs.com/csong7876/p/7736968.html