函数的渐近的界( O、Ω、ο、ω 、Θ)

有关函数阶关系的符号定义
大O符号

定义:
设 f 和 g是定义域为自然数集N上的函数. 若存在正数 c 和 n0,使得对一切 n ≥ n0有0 ≤ f(n) ≤ c g(n)成立, 则称 f(n) 的渐近的上界是 g(n),记作f (n) = O(g(n)).

例子:
设 f(n) = n2 + n,则
f(n)=O(n2),取 c = 2,n0 =1 即可
f(n)=O(n3),取 c = 1,n0 =2 即可

  1. f (n) = O(g(n)) ,f(n)的阶不高于g(n)的阶.
  2. 可能存在多个正数c,只要指出一个即可.
  3. 对前面有限个值可以不满足不等式.
  4. 常函数可以写作O(1).
大Ω 符号

定义:
设 f 和 g是定义域为自然数集N上的函数. 若存在正数 c 和 n0,使得对一切 n ≥ n0有 0 ≤ cg(n) ≤ f(n) 成立, 则称 f(n) 的渐近的下界是 g(n),记作f (n) = Ω (g(n)).
例子:
设 f(n) = n2 + n,则
f(n) = Ω (n2), 取 c = 1, n0 =1即可
f(n) = Ω (100n), 取 c=1/100, n0 =1即可

  1. f (n)= Ω (g(n)),f(n)的阶不低于g(n)的阶.
  2. 可能存在多个正数c,指出一个即可.
  3. 对前面有限个 n 值可以不满足上述不等式.
小o符号

定义:
设 f 和 g是定义域为自然数集 N上的函数. 若对于任意正数 c 都存在 n0,使得对一切 n ≥ n0有 0 ≤ f(n) < c g(n) 成立, 则记作f (n) = o(g(n)).
例子:
f(n)=n2+n,则f(n)=o(n3)。

  • c≥1显然成立,因为n2+n<cn3(n0=2)
  • 任给1>c >0, 取 n0 > 2/c 即可. 因为cn ≥ cn0 > 2 (当n ≥ n0)n2+n < 2n2 < cn3
  1. f (n) = o(g(n)) , f(n)的阶低于g(n)的阶
  2. 对不同正数c, n0不一样. c越小n0越大.
  3. 对前面有限个 n 值可以不满足不等式.
小ω 符号

定义:
设 f 和 g是定义域为自然数集 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有下式成立 c n2 = 2n2< n2 + n

  1. f (n)=O (g(n)), f (n)的阶高于g(n) 的阶.
  2. 对不同的正数c, n0不等,c 越大n0 越大.
  3. 对前面有限个 n 值可以 不满足不等式.
Θ 符号

定义:
若 f (n) = O (g(n)) 且 f (n) = Ω (g(n)),则记作f (n) = Θ (g(n))

例子:
f(n) =n2 + n, g(n) =100n2,那么有
f(n)=Θ (g(n))

  1. f(n) 的阶与 g(n) 的阶相等.
  2. 对前面有限个n 值可以不满足条件.
有关函数渐近的界的定理
定理1

在这里插入图片描述

一些重要结果
  • 可证明:多项式函数的阶低于指数函数的阶
    在这里插入图片描述
  • 可证明:对数函数的阶低于幂函数的阶
    在这里插入图片描述
定理 2

定理 设函数f, g, h的定义域为自然数集合,
(1) 如果 f=O(g) 且 g=O(h),那么 f=O(h).
(2) 如果 f=Ω(g) 且 g=Ω(h),那么 f =Ω (h).
(3) 如果 f=Θ(g) 和 g=Θ(h),那么 f =Θ (h).
函数的阶之间的关系具有传递性

定理3

定理 假设函数f 和g的定义域为自然数集,
若对某个其它函数 h, 有 f =O(h) 和 g=O(h),
那么
f + g = O(h).
该性质可以推广到有限个函数.
算法由有限步骤构成. 若每一步的时间复
杂度函数的上界都是 h(n),那么该算法的
时间复杂度函数可以写作 O(h(n)).

对三个定理小结
  • 估计函数的阶的方法:
    计算极限
    阶具有传递性
  • 对数函数的阶低于幂函数的阶,多项
    式函数的阶低于指数函数的阶.
  • 算法的时间复杂度是各步操作时间之
    和,在常数步的情况下取最高阶的函
    数即可.
几类重要的函数
基本函数类

在这里插入图片描述

对数函数

在这里插入图片描述
有关性质(1)的证明:
在这里插入图片描述
有关性质(2)(3)的说明
在这里插入图片描述

指数函数与阶乘

在这里插入图片描述
应用:估计搜索空间大小
在这里插入图片描述
log(n!) = Ω (nlogn)的证明
在这里插入图片描述
log(n!) = O(nlogn)的证明
在这里插入图片描述

取整函数

取整函数的定义

取整函数的性质
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 9
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 设$f(n)$和$g(n)$是两个非负函数。我们称$f(n)$为$g(n)$的$O$符号,当且仅当存在正常数$c$和$n_0$,使得对于所有$n≥n_0$,都有$f(n)≤cg(n)$。我们用$f(n)=O(g(n))$表示。 同样,我们称$f(n)$为$g(n)$的$\Omega$符号,当且仅当存在正常数$c$和$n_0$,使得对于所有$n≥n_0$,都有$f(n)≥cg(n)$。我们用$f(n)=\Omega(g(n))$表示。 证明: 如果$f(n)=O(g(n))$,则存在正常数$c_1$和$n_1$,使得对于所有$n≥n_1$,都有$f(n)≤c_1g(n)$。 同样,如果$f(n)=\Omega(g(n))$,则存在正常数$c_2$和$n_2$,使得对于所有$n≥n_2$,都有$f(n)≥c_2g(n)$。 因此,对于任意$n≥\max(n_1,n_2)$,我们有: $c_1g(n)≥f(n)≥c_2g(n)$ 这意味着$f(n)$和$g(n)$的增长速度是相似的,因此我们可以将它们视为同一级别的复杂度。 因此,当$f(n)=O(g(n))$且$f(n)=\Omega(g(n))$时,我们有$f(n)=Θ(g(n))$。 证毕。 ### 回答2: 复杂度函数的O和Ω关系式用于描述算法的时间复杂度下上界之间的关系。假设函数f(n)和g(n)都是非负函数,我们有O(g(n))表示函数f(n)的上界,即存在正常数c和n0使得对于所有的n > n0,有f(n) <= c * g(n)。Ω(g(n))表示函数f(n)的下,即存在正常数c和n0使得对于所有的n > n0,有f(n) >= c * g(n)。 为了证明复杂度函数的O和Ω关系式,我们可以用一个简单的例子来说明。假设我们有一个函数f(n) = n^2 + n和g(n) = n^2,我们需要证明f(n) = O(g(n))和f(n) = Ω(g(n))。 首先,我们需要找到正常数c和n0,使得对于所有的n > n0,有f(n) <= c * g(n)。我们可以选择c = 2和n0 = 1,计算当n > 1时,f(n) = n^2 + n <= 2n^2 = 2 * g(n)。因此,我们可以得出结论f(n) = O(g(n))。 接下来,我们需要找到正常数c和n0,使得对于所有的n > n0,有f(n) >= c * g(n)。我们可以选择c = 1和n0 = 1,计算当n > 1时,f(n) = n^2 + n >= n^2 = 1 * g(n)。因此,我们可以得出结论f(n) = Ω(g(n))。 综上所述,我们证明了复杂度函数的O和Ω关系式。根据具体的函数和算法情况,我们可以选择合适的正常数和n0来证明函数上界和下关系。 ### 回答3: 复杂度函数的O和Ω关系是用来描述算法的上界和下,用于表示算法的时间复杂度。对于一个给定的算法,如果存在常数c和正数n0,使得当输入规模大于n0时,算法的运行时间始终小于等于c * f(n),则称算法的时间复杂度为O(f(n))。如果存在常数c'和正数n0',使得当输入规模大于n0'时,算法的运行时间始终大于等于c' * f(n),则称算法的时间复杂度为Ω(f(n))。 为了证明O和Ω关系式,我们需要给出证据来说明上述定义成立。假设有函数g(n)表示算法的时间复杂度,并且存在常数c、c'、n0和n0',满足: 1. 当输入规模大于n0时,g(n) <= c * f(n)。 2. 当输入规模大于n0'时,g(n) >= c' * f(n)。 首先证明O关系式。假设令c = 1。当输入规模大于n0时,有g(n) <= f(n)。即算法的时间复杂度g(n)不大于f(n),满足O(f(n))。 接下来证明Ω关系式。假设令c' = 1。当输入规模大于n0'时,有g(n) >= f(n)。即算法的时间复杂度g(n)不小于f(n),满足Ω(f(n))。 综上所述,对于一个给定的算法,如果存在常数c和正数n0,使得当输入规模大于n0时,算法的运行时间始终小于等于c * f(n),则该算法的时间复杂度为O(f(n));如果存在常数c'和正数n0',使得当输入规模大于n0'时,算法的运行时间始终大于等于c' * f(n),则该算法的时间复杂度为Ω(f(n))。因此,复杂度函数的O和Ω关系式证明完毕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扎克风暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值