📅  最后修改于: 2020-12-22 04:45:37             🧑  作者: Mango
算法:算法是解决某些问题的分步方法。
算法通常具有以下特征:
算法分析指的是对执行算法所需的时间和空间进行估算的过程。
估计算法所需的时间(例如,步数)和空间(例如,变量数)很重要。知道算法所需的时间和空间后,我们就可以比较解决相同问题的算法。例如,如果一种算法需要n个步骤来解决一个问题,而另一种算法需要n ^ 2个步骤来解决一个相同的问题,我们将更喜欢第一种算法。执行算法所需的时间和空间的这种估计称为算法的时间和空间复杂度。
执行算法所需的时间是输入的函数。使用参数来表征输入的大小,而不是直接处理输入。例如,如果输入是包含n个元素的集合,则输入n的大小。由于确定了困难任务中算法的确切时间复杂度,因此有三种情况需要注意算法的时间复杂度。
渐进符号用于描述算法的执行时间。符号表示功能的增长顺序。在此,算法所花费的时间与数学函数有关。有许多渐近符号,如0,θ,Ω,w都有其重要性。
1.大数表示法:函数f(n)= O(g(n)) [读作“ n的f为n的g的大数”]]当且仅当存在正常数c和n 0时,这样的函数那
例1:对于所有n≥,函数4n + 3 = O(n)为4n + 3⩽5n。
例2:对于所有n≥,函数20n 2 + 5n + 2 = O(n 2 )为20n 2 + 5n +2⩽21n2。
2.Ω(Ω)表示法:函数f(n)=Ω(g(n))[读作“ n的f是n的g的欧米茄”],当且仅当存在正常数c且n 0这样时那
示例1:对于所有n≥1,函数4n + 3 =Ω(n)为4n + 3≥4n。
示例2:对于所有n≥1,函数20n 2 + 5n +2 =Ω(n)为20n 2 + 5n +2≥20n 2 。
3. Theta(θ):当且仅当存在正常数k 1 ,k 2和k时,函数f(n)=θ(g(n))[读作“ f是n的g的θ”] 0这样
示例1:对于所有n≥3的函数4n + 3≥4n ,函数4n + 3 =θ(n),对于所有n≥3的函数4n + 3≤5n
示例2:对于所有n≥1的函数20n 2 + 5n +2 =θ(n 2 )为20n 2 + 5n +2≤21n 2且对于所有n≥1的函数20n 2 + 5n +2≥20n 2