文章目录
一、复杂度理论
二、时间复杂度
1、P 与 NP 问题
2、O 表示的复杂度情况
3、时间复杂度取值规则
4、时间复杂度对比
一、复杂度理论
----
时间复杂度 : 描述一个算法执行的大概效率..., 也是很难理解的 ;
一般 蛮力算法 时间复杂度 很高 , 但是 编程复杂度 和 思维复杂度 很低 , 代码容易理解 ;
如果对 时间复杂度 要求很高 , 如必须达到
O(n)
或
O(n^...等 ;
2、O 表示的复杂度情况
O
表示算法在 最坏的情况下的时间复杂度 ;
一般情况下 , 算法的时间复杂度都以最坏情况的时间复杂度为准 ;
但是也有特例 , 快速排序的最坏情况下 , 时间复杂度是...O(n^2)
, 这个时间复杂度几乎不会遇到 , 一般情况下描述快速排序的时间复杂度时 , 使用 平均时间复杂度
O(n \log n)
;
3、时间复杂度取值规则
只考虑最高次项 : 时间复杂度描述中...4
提取出来变为
O (\cfrac{1}{2}\log (n) )
, 系数项不考虑 , 不管底数是多少 , 内部
n
是多少次幂 , 都可以提取成系数 , 系数项不考虑 ;
因此 , 对数的复杂度只有