T(n) 我们已经讲过了,它表示代码执行的时间;
n 表 示数据规模的大小
f(n) 表示每行代码执行的次数总和
公式中的 O,表示代码的执行时间 T(n) 与 f(n) 表达式成正比。
无意义的占行文字3.
无意义的占行文字4.
大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是 表示代码执行时间随数据规模增长的变化趋势,所以,也叫作渐进时间复杂度 (asymptotic time complexity),简称时间复杂度。
时间复杂度分析
1. 只关注循环执行次数最多的一段代码,这 段核心代码执行次数的 n 的量级,就是整段要分析代码的时间复杂度。
2. 加法法则:总复杂度等于量级最大的那段代码的复杂度抽象,规律抽象成公式就是: 如果 T1(n)=O(f(n)),T2(n)=O(g(n));那么 T(n)=T1(n)+T2(n)=max(O(f(n)), O(g(n))) =O(max(f(n), g(n))).
3. 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积如果 T1(n)=O(f(n)),T2(n)=O(g(n));那么 T(n)=T1(n)T2(n)=O(f(n))O(g(n))=O(f(n)*g(n)).
常见复杂度