Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 58.8MB ·虚拟内存 1300.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
必须分析算法的效率和准确性,以便对它们进行比较,并为特定场景选择特定的算法。进行这种分析的过程称为渐近分析。它是指以数学计算单位计算任何操作的运行时间。例如,一个操作的运行时间被计算为f(n),并且可能针对另一个操作被计算为g(n2)。这意味着第一次运行时间将随着n的增加而线性增加,第二次运行的运行时间将随着n的增加呈指数增长。同样,如果n很小,两个操作的运行时间将几乎相同。
通常,算法所需的时间分为三种类型 -
以下是计算算法运行时间复杂度的常用渐近符号。
符号Ο(n)是表达算法运行时间上限的形式化方式。它测量算法可能需要完成的最坏情况时间复杂度或最长时间。
例如,对于函数 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. }
以下是一些常见渐近符号的列表 -
不变 | \- | Ο(1) |
对数的 | \- | Ο(log n) |
线性 | \- | Ο(n)的 |
nlogn | \- | Ο(n log n) |
二次 | \- | Ο(n 2) |
立方体 | \- | Ο(n 3) |
多项式 | \- | Ñ Ο(1) |
指数 | \- | 2 (n) |
算法是明确的步骤,应该通过处理零个或多个输入给我们一个明确的输出。这导致了设计和编写算法的许多方法。据观察,大多数算法可以分为以下几类。 贪婪算法贪婪算法试图找到一个局部最优解,这可能最终导致全球优化的解决方 ...