1.Θ记号
Θ(g(n)) = {f(n):存在正常量,,,使得对所有的n,有 0 *g(n) f(n) *g(n) }。
若存在正常量,,使得足够大的n,函数f(n)能够"夹入"c1g(n)和c2g(n)之间,则f(n)属于(g(n)),记作f(n) (g(n)),通常用f(n) = (g(n)) 来表达相同的概念。
图中,对于n,函数f(n)在一个常量因子内等于g(n),所以g(n)是f(n)的一个渐进紧确界。
(g(n))的定义要求每个成员f(n) (g(n)) 均渐近非负,当n足够大时f(n)非负,(渐近正函数就是对所有足够大的n均为正的函数)。因此函数g(n)本身也为渐近非负。假设括号中的每个函数都为渐近非负,这个假设对其他记号也成立。
直觉上,一个渐近正函数的低阶项在确认渐进紧确界的时候可以忽略,当n较大时,最高阶项是远远大于低阶项的,因此将c1置为稍小于最高阶项系数的值并且将c2置为稍大于最高阶系数的值便能够使不等式成立。
任意二次函数f(x) = a+bn+c,其中a,b,c为常数且a>0。扔掉低阶项后得出f(x) = ()。我们取常量 = a/4, = 7a/4,且 = 2*max( |b|/a, )。可以证明对所有的n>,有0 a+bn+c 。
一般来说对于多项式 p(n) = ,其中为常量且>0,就有 p(n) = ()。
2.O记号
Θ记号渐近的给了一个函数的上界和下界,当只有一个渐近上界时,使用O记号。
O(g(n)) = {f(n):存在正常量c和,使得所有的n ,都有 0 f(n) cg(n) }。
Θ(g(n)) O(g(n)),因此任意二次函数 a+bn+c,其中a0,在Θ() 证明中也证明了O()。
当我们说“运行时间为O()时,意指存在一个O()的函数f(n),使得对n的任意值,不管选择什么特定的规模为n的输入,其运行时间的上界都是O()”
3./omega记号
指的是渐近下界,(g(n))={ f(n):存在正常量c和,使得所有的n ,都有0 cg(n) f(n) }。
4.等式和不等式中的渐近记号
当渐近符号独立在等式或不等式的右边(即不在一个更大的公式里)时,如在n = O(),等号是指集合包含的意思,n O()。
一般来说,当渐近符号出现在某个公式中时,将其解释为不太关注的匿名函数。比如:2+3n+1 = 2 + (n)。
5.o记号
o表示的是不渐近紧确的上界。
O(g(n)) = {f(n):对于任意量c>0,存在>0,使得所有的n ,都有 0 f(n) cg(n) }。
例如 2n = o(),但是2 o()。
6. w记号
表示的不渐近紧确的下界。
(g(n))={ f(n):对于任意c>0,存在>0,使得所有的n ,都有0 cg(n) f(n) }。
7.记号特性
- 传递性
f(n) = O(g(n)) 且 g(n) = O(h(n)),那么 f(n) = O(h(n))。 和也适用。
- 自反性
f(n) = O(f(n))。 和也适用。
- 对称性
f(n) = (g(n)) 当且仅当 g(n) = (f(n))。
- 转置对称性
f(n) = O(g(n)) 当且仅当 g(n) = (f(n)) 。
f(n) = o(g(n)) 当且仅当 g(n) = (f(n)) 。
8.三分性
对于两个实数a和b,a>b、a=b、a<b这三种情况中总会出现一种。但是不是所有的函数都能渐近比较的,对于两个函数f(n)和g(n),也许f(n) = O(g(n))和 f(n) = (g(n))都不成立,比如n和,1+sinn在0和2之间摆动,取介于两者之间的值。