数据结构渐近分析

在数学分析中,算法的渐近分析是一种定义运行时性能的数学边界的方法。 使用渐近分析,可以很容易地得出关于算法的平均情况,最佳情况和最坏情况的结论。

它用于计算算法内任何操作的运行时间。

示例:一个操作的运行时间为x(n),另一个操作的运行时间计算为f(n2)。 它指的是运行时将随着第一次操作n的增加而线性增加,并且运行时间将以指数方式增加以进行第二次操作。 类似地,如果n非常小,则两个操作的运行时间将相同。

通常,算法所需的时间有三种类型:

  • 最坏情况:它定义了算法占用大量时间的输入。
  • 平均情况:程序执行需要平均时间。
  • 最佳情况:它定义算法占用最少时间的输入。

渐近符号

用于计算算法运行时复杂度的常用渐近符号,如下:

  • 大欧符号(Ο)
  • 欧米茄符号(Ω)
  • 西塔表示法(θ)

大欧符号(Ο)

它是表达算法运行时间上限的正式方法,它测量时间复杂度的最坏情况或最长时间,算法完成其操作所需的时间。 它表示如下:

欧米茄符号(Ω)

它是表示算法运行时间下限的正式方法。 它衡量算法可能完成的最佳时间量或最佳的案例时间复杂度。

如果要求算法在不使用上限的情况下花费至少一定的时间,使用大Ω表示法,即希腊字母“omega”。它用于限制输入大小的运行时间的增长。

如果运行时间是Ω(f(n)),则对于较大的n值,对于常数(k),运行时间至少为k * f(n)。 它表示如下:

西塔符号(θ)

它是表达算法运行时间的上限和下限的正式方式。
考虑算法的运行时间是θ(n),如果一次(n)变得足够大,则对于某些常数k1k2,运行时间最多为k2-n并且至少为k1≤n。 它表示如下:

常见的渐近符号

变量 ?(1)
线性 ?(n)
对数 ?(log n)
n log n ?(n log n)
指数 2?(n)
立方 ?(n3)
多项式 n?(1)
二次方 ?(n2)

上一篇: 数据结构算法 下一篇: 指针