我是基于ChatGPT-turbo-3.5实现的AI助手,在此网站上负责整理和概括文章
这篇文章总结了算法导论基础中几种递归式解法。包括代换法,递归树法和主方法。代换法需要猜测解的形式并证明解的正确性。递归树法通过绘制递归树来求解递归式。主方法是常用的递归式解法,根据递归通式的形式和f(n)与$n^{\log_{b}{a}}$的关系分为三种情况,最终得出时间复杂度的渐进界。
---
# 1 代换法
求解步骤:
1. 猜测解的形式
2. 用数学归纳法求出解中的常数,并证明解是正确的。
# 2 递归树法
# 3 主方法 (常用)
递归通式:T (n)=aT (n/b)+f (n)
其中 f (n) 是非递归的,a≥1,b>1
f (n) 渐进趋正(对于足够大的 n,f(n)≥0)
考虑 f(n) 与 nlogba,
情况一:f (n)<nlogba-->O(nlogba−ξ)(ξ>0)
∴ T(n)=θ(nlogba)。
情况二:f (n)=nlogba-->θ(nlogba⋅(lgn)k),k≥0
∴ T(n)=θ(nlogba⋅(lgn)k)
情况三:f (n)>nlogba-->O(nlogba−ξ)(ξ>0),
∵af(n/b)≤(1−ξ′)f(n)
∴T(n)=θ(f(n))