数据结构(一)
一.时间复杂度四个定义
1.T(N)<=cf(N),则记为T(N) = O(N)
2.T(N)>=cg(N),则记为T(N) = Ω(N)
3.T(N) = Θ(h(N)),当且仅当T(N) = O(h(N)),且T(N) = Ω(N) (此时最好情况和最坏情况相同,曲线重合)
4.如果T(N) = O(p(N)) , 且T(N) ≠ Θ(p(N)),此时记为 T(N) = o(p(N)).
二.运算法则
1.相加时取复杂度中较大的一个,相乘时为复杂度的乘积。
2.k次多项式满足Θ(h(N^k))
3.log^k(N)增长非常缓慢,可记为O(N)
4.出现极限的情况可适当使用洛必达法则,比值为0,c(常数),∞对应着Θ,o。
三.分析问题
在分析问题时,一般采用最坏情况考虑,平均情况多数时候接近于最坏情况。
四.复杂度计算常用方法
1.for循环,for内部语句乘以迭代次数。
2.多重for循环出现,累乘即可。
3.顺序语句中,取复杂度最大的一个为时间复杂度。
4if,else时,判断+其中复杂度大的一个。