渐进符号定义和例子

渐进符号(Asymptotic Notation)用于描述算法的复杂度,特别是随着输入规模增大时,算法性能的变化。以下是常见的渐进符号及其定义和例子:

大O符号(Big-O Notation)

大O符号 O(f(n)) 描述的是上界,表示算法在最坏情况下的时间或空间复杂度。它给出一个函数的渐进上界

定义:T(n)=O(f(n))如果存在正数常数 c 和 n0​,使得对于所有 n≥n0,有 T(n)≤c⋅f(n)。

例子:对于算法运行时间 T(n)=3n2+2n+1,我们可以说 T(n)=O(n2)。

大Ω符号(Big-Omega Notation)

大Ω符号 Ω(f(n)) 描述的是下界,表示算法在最好的情况下的时间或空间复杂度。它给出一个函数的渐进下界

定义:T(n)=Ω(f(n)) 如果存在正数常数 c 和 n0​,使得对于所有 n≥n0​,有 T(n)≥c⋅f(n)。

例子:对于算法运行时间 T(n)=3n2+2n+1,我们可以说 T(n)=Ω(n2)。

大Θ符号(Big-Theta Notation)

大Θ符号 Θ(f(n))描述的是算法的精确增长率。它同时给出上界和下界,表示算法的时间或空间复杂度的渐进紧界

定义:T(n)=Θ(f(n))如果存在正数常数 c1、c2​ 和 n0​,使得对于所有 n≥n0,有c1⋅f(n) ≤ T(n) ≤ c2⋅f(n)。

例子:对于算法运行时间 T(n)=3n2+2n+1,我们可以说 T(n)=Θ(n2)。

小o符号(Little-O Notation)

小o符号 o(f(n))描述的是严格上界,表示算法的时间或空间复杂度严格小于某个函数的增长率

定义:T(n)=o(f(n))如果对于任意正数常数 c,存在 n0​,使得对于所有 n≥n0​,有 T(n)<c⋅f(n)。

例子:对于算法运行时间 T(n)=nlog⁡n,我们可以说 T(n)=o(n2)。

小ω符号(Little-Omega Notation)

小ω符号 ω(f(n)) 描述的是严格下界,表示算法的时间或空间复杂度严格大于某个函数的增长率

定义:T(n)=ω(f(n)) 如果对于任意正数常数 c,存在 n0,使得对于所有 n≥n0​,有 T(n)>c⋅f(n)。

例子:对于算法运行时间 T(n)=n2,我们可以说 T(n)=ω(n)。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI1.0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值