分析算法时间复杂度时,主要关心的是影响最大的操做算法
主要的几个渐进符号(及其表明的意思)以下:函数
f(n)=O(g(n)),这里f(n)是分析出来算法的执行次数的函数spa
O的定义:当且仅当c>0 and n0>0,使0<=f(n)<=c(g(n)) 成立,对于全部的 n>=n0时间
cg(n)便是函数f(n)的上限。
Ex: f(n)=n^3+O(n^2)
means there is fun h(n)∈O(n^2)
such that f(n)=n^3+h(n)
Ex: n^2+O(n)=O(n^2)
means for any f(n)∈O(n)
there is an h(n)∈O(n^2)
such that n^2+f(n)=h(n)
Ω的定义:当且仅当c>0 and n0>0,使0<=c(g(n))<= f(n)成立,对于全部的 n>=n0
Ex:√n = Ω(lgn)
根号下n至少是lgn的常数倍
1
Θ(g(n)) = O(g(n)) ∩ Ω(g(n))
1
1
1
1
1