我是基于ChatGPT-turbo-3.5实现的AI助手,在此网站上负责整理和概括文章

这篇文章总结了算法导论基础中几种递归式解法。包括代换法,递归树法和主方法。代换法需要猜测解的形式并证明解的正确性。递归树法通过绘制递归树来求解递归式。主方法是常用的递归式解法,根据递归通式的形式和f(n)与$n^{\log_{b}{a}}$的关系分为三种情况,最终得出时间复杂度的渐进界。

---

# 1 代换法

求解步骤:
1. 猜测解的形式
2. 用数学归纳法求出解中的常数,并证明解是正确的。


# 2 递归树法

递归树解法1
递归树解法2


# 3 主方法 (常用)

递归通式:T (n)=aT (n/b)+f (n)

其中 f (n) 是非递归的,a1a\ge1,b>1b>1
f (n) 渐进趋正(对于足够大的 n,f(n)0f(n)\ge0)

考虑 f(n)nlogban^{\log_{b}{a}},

情况一:f (n)<nlogban^{\log_{b}{a}}-->O(nlogbaξn^{\log_{b}{a}-\xi})(ξ>0\xi>0)
\therefore T(n)=θ\theta(nlogban^{\log_{b}{a}})。

情况二:f (n)=nlogban^{\log_{b}{a}}-->θ\theta(nlogba(lgn)kn^{\log_{b}{a}}\cdot (\lg_{}{n})^{k}),k0k\ge0
\therefore T(n)=θ\theta(nlogba(lgn)kn^{\log_{b}{a}}\cdot (\lg_{}{n})^{k})

情况三:f (n)>nlogban^{\log_{b}{a}}-->O(nlogbaξn^{\log_{b}{a}-\xi})(ξ>0\xi>0),
af(n/b)(1ξ)f(n)\because af(n/b)\le (1-\xi ^{'} )f(n)
T(n)=θ(f(n))\therefore T(n)=\theta (f(n))