算法中的时间复杂度分析

Posted questionszhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法中的时间复杂度分析相关的知识,希望对你有一定的参考价值。

三个法则,从极客时间的算法专栏总结

1. 只关注循环执行次数最多的一段代码

,我们在分析一个算法、一段代码的时间复杂度的时候,也只关注循环执行次数最多的那一段代码就可以了。

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)).也就是说,假设 T1(n) = O(n),T2(n) = O(n2),则 T1(n) * T2(n) = O(n3)。落实到具体的代码上,我们可以把乘法法则看成是嵌套循环

以上是关于算法中的时间复杂度分析的主要内容,如果未能解决你的问题,请参考以下文章

一文讲透算法中的时间复杂度和空间复杂度计算方式

一文讲透算法中的时间复杂度和空间复杂度计算方式

算法时间复杂度和NP问题简介

一文讲透算法中的时间复杂度和空间复杂度计算方式

算法复杂度分析

时间复杂度和控件复杂度