logo图片
数据结构与算法

渐近分析

算法的渐近分析是指定义其运行时性能的数学边界/框架。通过渐近分析,我们可以很好地得出算法的最佳情况、平均情况和最坏情况。
渐近分析是有输入界限的,即如果算法没有输入,则可以断定它在恒定时间内工作。除了"输入"之外,所有其他因素都被认为是恒定的。
渐近分析是指以数学计算单位计算任何操作的运行时间。例如,一个操作的运行时间被计算为 f(n) 并且可能对于另一个操作它被计算为 g(n 2)。这意味着第一个操作的运行时间会随着 n的增加而线性增加,而第二个操作的运行时间会随着 n的增加而呈指数增长。同样,如果 n 非常小,则两个操作的运行时间几乎相同。
通常,算法所需的时间分为三种类型-
Best Case-程序执行所需的最短时间。 Average Case-程序执行所需的平均时间。 Worst Case-程序执行所需的最长时间。

渐近符号

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

O符号,Ο

符号Ο(n)是表达算法运行时间上限的正式方式。它衡量最坏情况下的时间复杂度或算法可能完成的最长时间。
Big O Notation
例如,对于一个函数 f(n)
Ο(f(n)) = { g(n) : there exists c > 0 and n0 such that f(n) ≤ c.g(n) for all n > n0. }

Ω符号,Ω

符号 Ω(n) 是表示算法运行时间下限的正式方式。它衡量最佳案例时间复杂度或算法可能完成的最佳时间量。
Omega Notation
例如,对于一个函数 f(n)
Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f(n) for all n > n0. }

θ符号,θ

符号 θ(n) 是表示算法运行时间的下限和上限的正式方式。它表示如下-
Theta Notation
θ(f(n)) = { g(n) if and only if g(n) =  Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }

常用渐近符号

以下是一些常见的渐近符号列表-
常数 - Ο(1)
对数 - Ο(log n)
线性 - Ο(n)
n log n - Ο(n log n)
二次元 - Ο(n2)
立方 - Ο(n3)
多项式 - nΟ(1)
指数 - 2Ο(n)
昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4