(O(f(n))):
(T(n)=O(f(n)))表示存在常数(C>0),(n_0>0),使得当(n>n_0)时,总有(T(n)<=Cf(n))
(Omega(f(n))):
(T(n)=Omega(f(n)))表示存在常数(C>0),(n_0>0),使得当(n>n_0)时,总有(T(n)>=Cf(n))
(Theta(f(n))):
(Theta(f(n)))表示同时有(T(n)=O(f(n)))和(T(n)=Omega(f(n)))
一般取能找到的最小的上界和最大的下界。
程序员的直觉,当有一个算法是(O(n^2))的,下意识想能不能变成(O(nlogn))
两段代码相加与相乘
若两段算法分别有复杂度(T_1(n)=O(f_1(n)))和(T_2(n)=O(f_2(n))),则
(T_1(n)+T_2(n)=max(O(f_1(n)),O(f_2(n))))
(T_1(n)·T_2(n)=O(f_1(n)·f_2(n)))