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

本文详细介绍了大O、大Ω、小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)的证明
在这里插入图片描述

取整函数

取整函数的定义

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

### 大O、大Omega、大Theta表示法概述 算法分析中,时间复杂度和空间复杂度通常通过渐近记号来描述。这些记号提供了函数增长趋势的一种抽象方式。 #### 大O表示法 (Big O Notation) 用于定义一个函数的增长上限,在最坏情况下评估算法性能。如果存在正常数 \(c\) 和 \(n_0\) ,使得对于所有的 \( n \geq n_0 \),有 \(f(n) \leq c \cdot g(n)\),则称 \( f(n)=O(g(n)) \)[^1]。此表达意味着当输入规模足够大时,\(g(n)\) 是 \(f(n)\) 的上。 ```python def example_function(n): total = 0 for i in range(1, n + 1): # 这里的时间复杂度为 O(n) total += i return total ``` #### 大Omega表示法 (Big Omega Notation) 用来给出下限估计,即最好情况下的运行效率。如果有正实常量 \(k\) 及自然数 \(N\) 存在,那么对所有 \(n>N\), 都满足不等式 \(cg(n)\leq|T(n)|\) 成立,则说 T(n) 的阶不低于 cg(n),记作 \(T(n)(g(n))\) [^2]。这表明随着问题尺寸增加,实际执行次数不会低于某个特定比例的 \(g(n)\) 值。 #### 大Theta表示法 (Big Theta Notation) 提供了一个更精确的限——既不是过高的也不是过低的估算。若两个条件都成立:\(f(n)=O(g(n))\) 并且 \(f(n)(g(n))\) , 则可以写作 \(f(n)(g(n))\) 。这意味着 \(g(n)\) 准确反映了 \(f(n)\) 的增长率[^3]。 --- 上述三种符号主要用于理论计算机科学领域内讨论不同类型的资源消耗(如时间和内存),特别是在比较各种数据结构操作以及排序/查找算法之间的差异方面非常有用。它们帮助开发者理解并预测程序行为随输入大小变化的趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

扎克风暴

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

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

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

打赏作者

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

抵扣说明:

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

余额充值