在数学分析中,算法的渐近分析是一种定义运行时性能的数学边界的方法。 使用渐近分析,可以很容易地得出关于算法的平均情况,最佳情况和最坏情况的结论。
它用于计算算法内任何操作的运行时间。
示例:一个操作的运行时间为x(n),另一个操作的运行时间计算为f(n2)。 它指的是运行时将随着第一次操作n的增加而线性增加,并且运行时间将以指数方式增加以进行第二次操作。 类似地,如果n非常小,则两个操作的运行时间将相同。
通常,算法所需的时间有三种类型:
- 最坏情况:它定义了算法占用大量时间的输入。
- 平均情况:程序执行需要平均时间。
- 最佳情况:它定义算法占用最少时间的输入。
渐近符号
用于计算算法运行时复杂度的常用渐近符号,如下:
- 大欧符号(Ο)
- 欧米茄符号(Ω)
- 西塔表示法(θ)
大欧符号(Ο)
它是表达算法运行时间上限的正式方法,它测量时间复杂度的最坏情况或最长时间,算法完成其操作所需的时间。 它表示如下:
欧米茄符号(Ω)
它是表示算法运行时间下限的正式方法。 它衡量算法可能完成的最佳时间量或最佳的案例时间复杂度。
如果要求算法在不使用上限的情况下花费至少一定的时间,使用大Ω表示法,即希腊字母“omega”。它用于限制输入大小的运行时间的增长。
如果运行时间是Ω(f(n)),则对于较大的n值,对于常数(k),运行时间至少为k * f(n)。 它表示如下:

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

常见的渐近符号
| 变量 | ?(1) |
|---|---|
| 线性 | ?(n) |
| 对数 | ?(log n) |
| n log n | ?(n log n) |
| 指数 | 2?(n) |
| 立方 | ?(n3) |
| 多项式 | n?(1) |
| 二次方 | ?(n2) |
