T(N) = O(f(N))(念做大O),含义:T(N)的增长率小于等于f(N)的增长率。理解为,N趋于无穷大,T(N) <= f(N)。若T(N)的增长率恒小于f(N),则可记为T(N) = o(f(N))(念做小o)。
T(N) = Ω(g(N))(念做omega),含义:T(N)的增长率大于等于g(N)的增长率。理解为,N趋于无穷大,T(N)>=g(N)。
当T(N) = O(h(N)) 且 T(N) = Ω(g(N)),则T(N) = Θ(h(N))(念theta)。
法则1:
如果T1(N) = O(f(N))且T2(N) = O(g(N)),那么
1)T1(N) + T2(N) = max(O(f(N)), O(g(N)))
2)T1(N) * T2(N) = O(f(N) * g(N))
法则2:
如果T(N)是一个k次多项式,则T(N)=Θ(Nk)
法则3:
对于任意常熟k,logkN = O(N)。(这个法则用的比较多,说明每个循环若都是logN,则套几次循环都比O(N)快)
时间: 2024-09-26 20:19:20