📜  DAA算法的渐近分析

📅  最后修改于: 2020-12-10 03:45:11             🧑  作者: Mango

算法的渐近分析(函数的增长)

算法的资源通常表示为与输入有关的函数。通常,此函数比较麻烦且工作复杂。为了有效地研究功能增长,我们将函数缩减到重要部分。

在此函数,n 2项主导着当n变得足够大时的函数。

在这方面,称谓词是我们对简化函数感兴趣的东西;我们忽略所有常数和系数,而是查看与n有关的最高阶项。

渐近符号:

“渐近”一词的意思是任意接近一个值或曲线(即,采取某种限制)。

渐近分析

这是一种表示限制行为的技术。该方法在整个科学中都有应用。它可用于分析某些大型数据集的算法性能。

1.在计算机科学中的算法分析中,考虑将算法应用于非常大的输入数据集时的性能

最简单的示例是函数ƒ(n)= n 2 + 3n ,当n非常大时,项3n与n 2相比微不足道。函数“ ƒ(n)渐近地等效n 2,n→∞ ”,这里的符号表示为ƒ(n)〜n 2

渐近符号用于为算法编写最快和最慢的运行时间。这些情况也分别称为“最佳情况”和“最坏情况”。

“以渐近符号表示,我们得出了与输入大小有关的复杂性。(以n为例)

“这些表示法很重要,因为在不增加运行算法成本的情况下,我们可以估算算法的复杂性。”

为什么渐近符号很重要?

1.它们给出了算法效率的简单特征。

2.它们允许比较各种算法的性能。

渐近符号:

渐近符号表示法是一种比较函数的方法,该函数忽略常数因子和较小的输入大小。使用三种符号来计算算法的运行时间复杂度:

1. Big-oh表示法: Big-oh是表达算法运行时间上限的形式方法。它是最长时间的度量。函数f(n)= O(g(n)) [读作“ n的f是n的g的大哦”],当且仅当存在正常数c且

 f (n) ⩽ k.g (n)f(n)⩽k.g(n) for n>n0n>n0 in all case 

因此,函数g(n)是函数f(n)的上限,因为g(n)增长快于f(n)

例如:

 1. 3n+2=O(n) as 3n+2≤4n for all n≥2
 2. 3n+3=O(n) as 3n+3≤4n for all n≥3

因此,f(n)的复杂度可以表示为O(g(n))

2. Omega()表示法:函数f(n)=Ω(g(n))[读作“ n的f是n的g的欧米茄”],当且仅当存在正常数c和n 0使得

例如:

因此,f(n)的复杂度可以表示为Ω(g(n))

3. Theta(θ):当且仅当存在正常数k 1 ,k 2和k时,函数f(n)=θ(g(n))[读作“ f是n的g的θ”] 0这样

例如:

因此,f(n)的复杂度可以表示为θ(g(n))。

Theta表示法比big-oh和Omega表示法更精确。如果g(n)既是上限又是下限,则函数f(n)=θ(g(n))。