悉野小楼

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

算法复杂性表示

算法复杂性可以用O,Ω, o, ω, θ 5个字母表示.

O表示算法复杂性的上限.  Ω表示算法复杂性下限.

o表示算法函数比o中的函数低阶. o与O对应, 是下限了.

如复杂度为f(n), o(g(n))表示f(n)比g(n)低阶. 像f(n)=n, g(n)=n^2, f(n)就比g(n)低一阶.如果g(n)=2n, f(n)与g(n)为同阶.

ω与Ω对应, ω中的函数比f(n)高阶.

θ表示f(n), g(n)同阶.

=======================

以下设f(N)和g(N)是定义在正数集上的正函数。

O: 

如果存在正的常数C和自然数N0,使得当NN0时有f(N)≤Cg(N)。则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=Ο(g(N))。这时我们还说f(N)的阶不高于g(N)的阶。 

 Ω:

 关于记号Ω,定义如下:如果存在正的常数C和自然数N0,使得当NN0时有f(N)≥Cg(N),则称函数f(N)当N充分大时下有界,且g(N)是它的一个下界,记为f(N)=Ω(g(N))。这时我们还说f(N)的阶不低于g(N)的阶。

θ:

记号θ将随之清楚,因为我们定义f(N)=θ(g(N))则f(N)=Ο(g(N)) 且f(N)=Ω(g(N))。这时,我们说f(N)与g(N)同阶。比如,对于算法Search在最坏情况下的时间复杂性Tmax(m)。已有Tmax(m)=Ο(m)和Tmax(m)=Ω(m),所以有Tmax(m)(m),这是对Tmax(m)的阶的精确估计。

 o:

如果对于任意给定的ε≥0,都存在非负整数N0,使得当NN0时有f(N)≤εg(N),则称函数f(N)当N充分大时比g(N)低阶,记为f(N)= o(g(N)),例如:4NlogN +7=o(3N 2+4NlogN+7)

 ω:

f(N)=ω(g(N))定义为g(N)=o(f(N))。即当N充分大时f(N)的阶比g(N)高。

 

按照大Ο的定义,容易证明它有如下运算规则:

  1. Ο(f)+Ο(g)=Ο(max(f,g));
  2. Ο(f)+ Ο(g)=Ο(+g);
  3. Ο(fΟ(g)= Ο(f·g);
  4. 如果g(N)= Ο(f(N)),则Ο(f)+ Ο(g)= Ο(f);
  5. Ο(Cf(N))= Ο(f(N)),其中C是一个正的常数;
  6. f =Ο(f);

 

posted on   悉野  阅读(562)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示