Python - 算法类型


需要对算法的效率和准确性进行分析比较,并针对特定的场景选择特定的算法。进行这种分析的过程称为渐近分析。它是指以数学计算单位计算任何操作的运行时间。

例如,一个操作的运行时间计算为 f(n),而另一操作的运行时间可能计算为 g(n2)。这意味着第一个操作的运行时间将随着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. }

Theta 表示法,θ

符号 θ(n) 是表达算法运行时间的下限和上限的正式方式。它表示如下 -

西塔表示法
θ(f(n)) = { g(n) if and only if g(n) =  Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }

常见渐近符号

下面列出了一些常见的渐近符号 -

持续的 - Ο(1)
对数 - Ο(logn)
线性 - Ο(n)
对数 n - Ο(n log n)
二次的 - Ο(n 2 )
立方体 - Ο(n 3 )
多项式 - Ο (1)
指数 - 2 Ο(n)