3.1渐进记号
适用范围
- 算法的运行时间
- 算法的其他方面(空间复杂性等)
- 与算法无关的函数
渐进紧确界
- 常用g(n)表示
- 表达式如下
∃ c1,c2∈Z,∀ n≥n0, 0≤c1g(n)≤f(n)≤c2g(n) - f(n)=Θ(g(n))
不同的记号
O(渐进上界)
- 表达式如下
∃ c∈Z,∀ n≥n0, 0≤f(n)≤cg(n) - f(n)=O(g(n)) ⊆ f(n)=Θ(g(n))
- 表达式如下
Ω(渐进下界)
- 表达式如下
∃ c∈Z,∀ n≥n0, 0≤cg(n)≤f(n) - 如果f(n)=O(g(n)) 且 f(n)=Ω(g(n)),则f(n)=Θ(g(n)).
- 表达式如下
o(非渐进紧确上界)
- 表达式如下
∀ c>0,∃ n≥n0, 0≤cg(n)≤f(n) - 等价关系如下
limn→+∞f(n)g(n)=0
例如,2n=o(n2) , 但2n2≠o(n2)
- 表达式如下
ω(非渐进紧确下界)
等式中渐进记号的含义
例如等式2n^2^ + 3n + 1 = 2n^2^ + Θ(n) ,其右边的θ(n)指代其集合中某个函数,通过这种方法,消除等式中无关紧要的细节;
例如等式2n^2^ + Θ(n) = Θ(n^2^),
其含义为无论左边Θ(n)取集合中哪一个函数,Θ(n^2^)中总存在一个函数使得等式成立。即等式右边给出了一个更模糊的界限。匿名函数数目与渐进记号出现次数有关,与数学表达式含义无关,例如∑O(i) 不同于 O(1)+O(2)+O(3)+…,
前者仅有一个匿名函数而后者有多个。
渐进运算的性质
- 传递性
- 自反性
- 对称性
- 转置对称性:
f(n)=O(g(n)) 当且仅当 g(n)=Ω(f(n))
f(n)=o(g(n)) 当且仅当 g(n)=ω(f(n)) - 三分性
任意两个实数a,b,对于a < b,a = b,a > b三种情况,必然有一成立。且上述性质并不适用于所有函数,比如n和 n1+sinn。
3.2重要公式
斯特林近似公式
n!=2πn−−−√ (n/e)n (1+Θ(1/n))⇒lg(n!)=Θ(nlgn)多重对数 (lg∗n`)
定义:lg∗n=min{i≥0|lg(i)n≤1}
i的增长异常缓慢
lg∗2=1
lg∗22=2
lg∗24=3
lg∗216=4
多项式有界
f(n)=O(nk)⇔lg(f(n))=O(lgn)