写这篇文章的目的是记录自己在估算时间复杂度这方面所遇到的知识漏洞,在这里做一下笔记,都是很小的分散知识点啦
定义:时间复杂度是一种用来估算程序运行时间的一种函数表达形式
几个符号
- 如果 T(n) 的增长率 小于等于 f(n) 则用公式表示为
- 如果 T(n) 的增长率 大于等于 f(n) 则用公式表示为
- 如果 T(n) 的增长率 等于 f(n) 则用公式表示为
- 如果 T(n) 的增长率 小于 f(n) 则用公式表示为
运算规则
- 若并且
- ,也可以写成
- 为一个 k 次多项式,则
- 对于任意常数 k 则,说明对数增长的十分缓慢
我们可以通过计算极限来确定两个函数的相对增长率
- 极限为0,代表分子是比分母高阶的无穷小,也就是说分子增长率小于分母,
- 极限为常数c,代表分子分母等价无穷小,
- 极限为,代表分子增长率高于分母,
主方法:递归时间复杂度的计算