📜  数据结构-渐近分析

📅  最后修改于: 2021-01-11 06:38:35             🧑  作者: Mango


算法的渐近分析是指定义其运行时性能的数学边界/框架。使用渐近分析,我们可以很好地得出算法的最佳情况,平均情况和最坏情况。

渐进分析是输入边界,即,如果算法没有输入,则得出结论可以在恒定时间内工作。除了“输入”之外,所有其他因素都被认为是恒定的。

渐进分析是指以数学计算单位计算任何运算的运行时间。例如,一个操作的运行时间被计算为f (n),对于另一操作,它的运行时间可能被计算为g (n 2 )。这意味着第一操作的运行时间将随着n的增加线性增加,而第二操作的运行时间将随着n的增加呈指数增长。同样,如果n很小,则两个操作的运行时间将几乎相同。

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

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

  • 平均情况-程序执行所需的平均时间。

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

渐近符号

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

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

大哦记法,Ο

符号Ο(n)是表达算法运行时间上限的正式方法。它测量最坏情况下的时间复杂度或算法可能花费的最长时间。

大O符号

例如,对于函数f (n)

Ο(f(n)) = { g(n) : there exists c > 0 and n0 such that f(n) ≤ c.g(n) for all n > n0. }

ΩΩ

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

欧米茄符号

例如,对于函数f (n)

Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f(n) for all n > n0. }

θ符号θ

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

θ符号

θ(f(n)) = { g(n) if and only if g(n) =  Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }

常见渐近符号

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

constant Ο(1)
logarithmic Ο(log n)
linear Ο(n)
n log n Ο(n log n)
quadratic Ο(n2)
cubic Ο(n3)
polynomial nΟ(1)
exponential 2Ο(n)