问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据结构与算法中的渐进分析

创作时间:
作者:
@小白创作中心

数据结构与算法中的渐进分析

引用
1
来源
1.
https://www.jc2182.com/dsa/dsa-asymptotic-analysis.html

渐进分析

算法的渐近分析是指定义其运行时性能的数学边界/框架。使用渐近分析,我们可以很好地得出算法的最佳情况,平均情况和最坏情况。渐进分析是输入范围,即,如果算法没有输入,则得出结论可以在恒定时间内工作。除了“输入”之外,所有其他因素都被认为是恒定的。渐进分析是指以数学计算单位计算任何运算的运行时间。例如,一个操作的运行时间被计算为f(n),对于另一操作,它的运行时间可能被计算为g(n2)。这意味着随着n的增加,第一操作的运行时间将线性增加,而当n增加时,第二操作的运行时间将呈指数增长。同样,如果n很小,则两个操作的运行时间将几乎相同。

通常,算法所需的时间分为以下三种:

  • 最佳情况-程序执行所需的最短时间。
  • 平均情况-程序执行所需的平均时间。
  • 最坏的情况-程序执行所需的最长时间。

渐近符号

以下是常用的渐近符号来计算算法的运行时间复杂度。

  • Ο表示法
  • Ω表示法
  • θ符号

Ο表示法

符号Ο(n)是正式的方式来表达一个算法的运行时间的上界。它测量的是最坏情况下的时间复杂度或算法完成所需的最长时间。

例如,对于函数f(n)

Ο(f(n)) = { g(n): 存在 c>0和n0,使得f(n)≤c。 对于所有n > n0的g(n)。 }

Ω表示法

Ω(n)是表示算法运行时间下限的形式化方法。它测量最佳情况下的时间复杂度或算法可能花费的最长时间。

例如,对于函数f(n)

Ω(f(n)) ≥ {   g(n):存在c> 0和n0,使得g(n) ≤c 。  对于所有 n > n0的f(n)。 }

θ符号

θ(n)表示形式是算法运行时间的下限和上限。它表示如下-

例如,对于函数f(n)

θ(f(n)) = { 当且仅当对于所有n > n0,g(n) = Ο(f(n)) 且 g(n)=Ω(f(n))时,才可以使用g(n) 。 }

常见渐近符号

以下是一些常见的渐近符号的列表-

  • 常数 −Ο(1)
  • 对数 −Ο(log n)
  • 线性 −Ο(n)
  • n o (log n) log n −Ο(n log n)
  • 平方 −Ο(n2)
  • 立方 −Ο(n3)
  • 多项式 −nΟ(1)
  • 指数 −2Ο(n)
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号