渐进符号
渐进符号介绍
-
O(),f(n)=O(g(n))表示存在适当的常数c>0,n0>0,使得f(n)≤cg(n),比如n2=O(n3)
-
Ω(),Ω(g(n))=f(n)表示存在适当的常数c>0,n0>0,使得0≤cg(n)≤f(n),比如n=Ω(lgn)
-
Θ()=O(g(n))∩Ω(g(n)),忽略常数项的相等,比如n2+O(n)=Θ(n2)
-
o(),f(n)=o(g(n))表示对于任意c存在适当的常数n0>0,使得f(n)<(n),比如2n2=o(n3),2n2=Θ(n2)不是o、ω关系,因为它是严格的n2
-
ω(),ω(g(n))=f(n)表示对于任意c存在适当的常数n0>0,使得0<cg(n)<f(n),比如n=ω(lgn)
解递归
代换法(Substitution method)
介绍
- 猜解的形式
- 按照数学归纳法验证是否正确
- 设法找出解
举例
比如,T(n)=4T(n/2)+n,猜想T(n)=O(n3),则在k<n下T(k)≤ck3,利用数据归纳证明T(n)≤cn3。

下面尝试证明更紧的上界O(n2)

所以不能小于等于n2,但从直观上看n2的形式应该成立,所以考虑

递归树(Recursion-tree method)
介绍
- 执行成本高
- 可以辅助代换法第一步猜想解
- 有点不可靠,中间过程迭代容易有点问题
举例
T(n)=T(n/4)+T(n/2)+n2,
用树的形式展开递归




主方法(master method)
介绍
只能用于特定的递归式T(n)=aT(n/b)+f(n),a≥1,b>1,f函数渐进趋正(对足够大的n,f(n)是正的)。
三种常见的情况:


举例


推导


