渐进的界
相关概念
O(n)
若存在正数 c 和 n0 , 使得一切 n≥n0 都有 0≤f(n)≤cg(n) , 则 f(n) 的渐进上界为 g(n) , 记为 f(n)=O(g(n))
f(n)=n2+n
当 c=2 , n0=1 时, f(n)=O(n2)
当 c=1 , n0=2 时, f(n)=O(n3)
Ω(n)
若存在正数 c 和 n0 , 使得一切 n≥n0 都有 0≤cg(n)≤f(n) , 则 f(n) 的渐进下界为 g(n) , 记为 f(n)=Ω(g(n))
f(n)=n2+n
当 c=1 , n0=1 时, f(n)=Ω(n2)
o(n)
若对 任意
正数 c 都存在 n0 , 使得一切 n≥n0 都有 0≤f(n)<cg(n) , 记为 f(n)=o(g(n))
f(n)=n2+n
当 c≥1 时, 存在 n0=2 , 使得 n2+n<cn3
当 0<c<1 时, 取 n0>⌈2/c⌉, 使得 cn≥cn0>2 , 而 n2+n<2n2≤cn3 , 因此 f(n)=o(n3)
ω(n)
若对 任意
正数 c 都存在 n0 , 使得一切 n≥n0 都有 0≤cg(n)<f(n) , 记作 f(n)=ω(g(n))
f(n)=n2+n
f(n)=ω(n) , f(n)=ω(n2) , 因为当 c=2 时, 不存在 n0 使得一切 n≥n0 都有 2n2<n2+n
Θ(n)
上下界
若 f(n)=O(g(n)) 且 f(n)=Ω(g(n)) , 记作 f(n)=Θ(g(n))
f(n)=n2+n , 则 f(n)=Θ(100n2)
当 c=1/100 且 n0=1 时, f(n)=Ω(n2)
当 c=1/50 且 n0=1 时, f(n)=O(n2)
积分求渐近的界

定理
定理一
如果 n→∞limg(n)f(n) 存在, 且等于某个常数, 则 f(n)=Θ(g(n))
证明
给定正数 ε=c/2 , 根据极限的定义, 则
∣∣g(n)f(n)−c∣∣≤ε
c−ε<g(n)f(n)<c−ε
2c<g(n)f(n)<23c<2c
因此存在 f(n)≤2cg(n) 以及 f(n)≥2cg(n)
例题
f(n)=21n2−3n , 证明 f(n)=Θ(n2)
因为 n→∞limn2f(n)=n→∞limn221n2−3n=21 , 因此 f(n)=Θ(n2)
定理二
如果 n→∞limg(n)f(n)=0 , 则 f(n)=o(g(n))
定理三
如果 n→∞limg(n)f(n)=+∞, 则 f(n)=ω(g(n))
其他定理
-
如果 f=O(g) 且 g=O(h) , 则 f=O(h)
-
如果 f=Ω(g) 且 g=Ω(h) , 则 f=Ω(h)
-
如果 f=Θ(g) 且 g=Θ(h) , 则 f=Θ(h)
-
幂函数的阶数小于指数函数
nd=o(rn),r<1,d<0
证明
n→∞limrnnd=n→∞limrnlnrdnd−1=n→∞limrn(lnr)dd!=0
-
多项式 f(n)=a0+a1n+a2n2+⋯+adnd 存在
-
f(n)=Ω(nd)
-
f(n)=O(nd)
-
f(n)=Θ(nd)
-
对数函数存在
证明
n→∞limnαlogbn=n→∞limnαlnblnn=n→∞limαnα−1lnb1/n=n→∞limαnαlnb1=0
-
阶乘
-
stirling 公式
n!=2πn(en)n(1+Θ(n1))
-
n!=o(nn)
-
n!=ω(2n)
-
log(n!)=Θ(nlogn)
证明
n→∞limnlognlog(n!)=1
-
求和公式
k=1∑nak=2n(a1+an)
k=0∑naqk=1−qa(1−qn+1)
递归公式计算复杂度
换元迭代

差消化简

递归树

终止条件
n(32)k=1
则
T(n)=nk=nlog3/2n=O(nlogn)
主定理
a>1 , b>1 , f(n) 为函数, T(n) 为非负整数, 且 T(n)=aT(bn)+f(n)
-
f(n)=O(nlogba−ε) , ε>0 , T(n)=Θ(nlogba)

-
f(n)=Θ(nlogba) , 则 T(n)=Θ(nlogbalogn)

-
f(n)=Ω(nlogba+ε) , ε>0 , 某个常数 c<1, 所有充分大的 n 有 af(n/b)≤cf(n) , 那么 T(n)=Θ(f(n))
