基本算法(02) - 渐近符号
符号O
- O符号,f(n) = O(g(n)),表示f(n)的复杂度最多与g(n)一个数量级,即小于等于。
- 当我们评估一个算法,只能评估出该算法的“时间复杂度”上限的时候,就用O表示。
符号o
o符号,f(n) = o(g(n)),表示f(n)的复杂度要比g(n)的数量级小,即小于。
符号Ω
Ω符号,f(n) = Ω(g(n)),f(n)的复杂度最少与g(n)一个数量级,即大于等于。
- 当我们评估一个算法,只能评估出该算法的“时间复杂度”下限的时候,就用Ω表示。
符号ω
ω符号,f(n) = ω(g(n)),表示f(n)的复杂度要比g(n)的数量级大,即大于。
符号Θ
Θ符号,(n) = Θ(g(n)),表示f(n)的复杂度既大于等于g(n)的复杂度,又小于等于g(n)的复杂度,即于g(n)的复杂度相等。
性质及类比
- 传递性:
f(n) = Ө(g(n)) 和 g(n) = Ө(h(n)) => f(n) = Ө(h(n))
f(n) = O(g(n)) 和 g(n) = O(h(n)) => f(n) = O(h(n))
f(n) = Ω(g(n)) 和 g(n) = Ω(h(n)) => f(n) = Ω(h(n))
f(n) = o(g(n)) 和 g(n) = o(h(n)) => f(n) = o(h(n))
f(n) = ω(g(n)) 和 g(n) = ω(h(n)) => f(n) = ω(h(n)) - 自反性:
f(n) = Ө(f(n))
f(n) = O(f(n))
f(n) = Ω(f(n)) - 转置对称性:
f(n) = Ө(g(n)) 当且仅当 g(n) = Ө(f(n))
f(n) = O(g(n)) 当且仅当 g(n) = Ω(f(n))
f(n) = o(g(n)) 当且仅当 g(n) = ω(f(n)) - 类比:
可以类比:
O Ω Θ o ω
≤ ≥ = < >
但类比并不是等价于;同时小符号是大符号更为严格的记号,但却没有严格的小θ。
本文来自博客园,作者:duchaoqun,转载请注明原文链接:https://www.cnblogs.com/duchaoqun/p/12695613.html
分类:
Other
标签:
arithmetic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?