算法基础-渐近记号

本文详细介绍了Θ记号、O记号、/omega记号以及它们在衡量函数增长速度和算法复杂度中的作用,包括渐近紧确界的概念、渐近非负性、多项式函数的处理以及渐近记号的性质如传递性、自反性和对称性。同时讨论了函数间无法进行渐近比较的情况,强调了三分性的概念。
摘要由CSDN通过智能技术生成

1.Θ记号

Θ(g(n)) = {f(n):存在正常量c_{1},c_{2},n_{0},使得对所有的n\geqslantn_{0},有 0 \leqslantc_{1} *g(n) \leqslant f(n) \leqslant  c_{2}*g(n) }。

         若存在正常量c_{1},c_{2},使得足够大的n,函数f(n)能够"夹入"c1g(n)和c2g(n)之间,则f(n)属于\Theta(g(n)),记作f(n) \in \Theta(g(n)),通常用f(n) =  \Theta(g(n)) 来表达相同的概念。

图中,对于n\geqslantn_{0},函数f(n)在一个常量因子内等于g(n),所以g(n)是f(n)的一个渐进紧确界

       \Theta(g(n))的定义要求每个成员f(n) \in \Theta(g(n)) 均渐近非负,当n足够大时f(n)非负,(渐近正函数就是对所有足够大的n均为正的函数)。因此函数g(n)本身也为渐近非负。假设\Theta括号中的每个函数都为渐近非负,这个假设对其他记号也成立。

       直觉上,一个渐近正函数的低阶项在确认渐进紧确界的时候可以忽略,当n较大时,最高阶项是远远大于低阶项的,因此将c1置为稍小于最高阶项系数的值并且将c2置为稍大于最高阶系数的值便能够使不等式成立。

       任意二次函数f(x) = an^{2}+bn+c,其中a,b,c为常数且a>0。扔掉低阶项后得出f(x) = \Theta(n^{2})。我们取常量c_{1} = a/4,c_{2} = 7a/4,且 n_{0}  = 2*max( |b|/a, \sqrt{|c|/a} )。可以证明对所有的n>n_{0},有0 \leqslant\leqslantc_{1}n^{2}  \leqslant an^{2}+bn+c \leqslant  c_{2}n^{2}

     一般来说对于多项式 p(n) = \sum_{i=0}^{d} a_{i}n^{i},其中a_{i}为常量且>0,就有 p(n) =  \Theta(n^{d})。

2.O记号

Θ记号渐近的给了一个函数的上界和下界,当只有一个渐近上界时,使用O记号。

O(g(n)) = {f(n):存在正常量c和n_{0},使得所有的n \geqslantn_{0},都有 0 \leqslant f(n) \leqslant cg(n) }。

Θ(g(n)) \subseteq O(g(n)),因此任意二次函数  an^{2}+bn+c,其中a\geqslant0,在Θ(n^{2}) 证明中也证明了O(n^{2})。

当我们说“运行时间为O(n^{2})时,意指存在一个O(n^{2})的函数f(n),使得对n的任意值,不管选择什么特定的规模为n的输入,其运行时间的上界都是O(n^{2})”

3./omega记号

\Omega指的是渐近下界,\Omega(g(n))={ f(n):存在正常量c和n_{0},使得所有的n \geqslantn_{0},都有0\leqslant cg(n) \leqslant f(n) }。

4.等式和不等式中的渐近记号

当渐近符号独立在等式或不等式的右边(即不在一个更大的公式里)时,如在n = O(n^{2}),等号是指集合包含的意思,n \in O(n^{2})。

一般来说,当渐近符号出现在某个公式中时,将其解释为不太关注的匿名函数。比如:2n^{2}+3n+1 = 2n^{2} + \Theta(n)。

5.o记号

o表示的是不渐近紧确的上界。

O(g(n)) = {f(n):对于任意量c>0,存在n_{0}>0,使得所有的n \geqslantn_{0},都有 0 \leqslant f(n) \leqslant cg(n) }。

例如 2n = o(n^{2}),但是2n^{2} \neq o(n^{2})。

6. w记号

\omega表示的不渐近紧确的下界。

\omega(g(n))={ f(n):对于任意c>0,存在n_{0}>0,使得所有的n \geqslantn_{0},都有0\leqslant cg(n) \leqslant f(n) }。

7.记号特性

  • 传递性

    f(n) = O(g(n)) 且 g(n) = O(h(n)),那么 f(n) = O(h(n))。  \Theta\Omega也适用。

  • 自反性

    f(n) = O(f(n))。  \Theta\Omega也适用。

  • 对称性

    f(n) = \Theta(g(n)) 当且仅当 g(n) =  \Theta(f(n))。

  • 转置对称性

     f(n) = O(g(n)) 当且仅当 g(n) = \Omega(f(n)) 。

     f(n) = o(g(n)) 当且仅当 g(n) = \omega(f(n)) 。

8.三分性

对于两个实数a和b,a>b、a=b、a<b这三种情况中总会出现一种。但是不是所有的函数都能渐近比较的,对于两个函数f(n)和g(n),也许f(n) = O(g(n))和 f(n) = \Omega(g(n))都不成立,比如n和n^{1+sinn},1+sinn在0和2之间摆动,取介于两者之间的值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值