常用的时间复杂度分析方法
分析时间复杂度有三个比较有用的方法:
1. 只关注循环次数最多的一段代码。

时间复杂度,也叫做大O表示法,代表了一种变化趋势。我们会忽略掉公式中的 常量 ,低阶, 系数。因为这些都对于增长趋势没有决定性的影响。只需要记录最大阶的量级即可。
因此在分析一段代码或者一个算法的时间复杂度的时候,也只需要关注执行次数最多的那一段代码就可以了。 上面代循环了n次,因此其时间复杂度就是O(n);
2. 加法法则:总复杂度等于量级最大的那段代码的复杂度。

三段代码的时间复杂度分别如上,因此整段代码的时间复杂度就是量级最大的那段代码的时间复杂度 O(n^2)
3.乘法法则:嵌套代码的时间复杂度等于嵌套内外代码的复杂度的乘积

单独看cal函数,如果把f()想象成一个常规的操作,比如一个常量,那么cal的复杂度就是O(n),但是f()不是一个常规操作,他的复杂度是O(n),所以整个cal()函数的时间复杂就是O(n*n).

浙公网安备 33010602011771号