文章目录
复杂度是衡量代码运行效率的重要的度量因素。计算机执行一段程序,消耗的是计算时间和存储空间,需要衡量的就是时间复杂度和空间复杂度。
复杂度是与计算的数据量个数n有关的函数。假设你的代码复杂度是 f(n),那么就用个大写字母 O 和括号,把 f(n) 括起来就可以了,即 O(f(n))。
例如:
O(n):表示计算的个数n与复杂度线性相关
O(logn):表示计算的个数n与复杂度对数相关
O(2n) = O(n) + O(n),复杂度最终还是记作O(n)。
O(n2 + n) = O(n2) + O(n),随着n的增大,n2增大的幅度要远远大于n,所以最终复杂度记为O(n2)。
注:O(1)表示一个特殊的复杂度
暴力解法即不计时间和空间资源的消耗,把题目做出来。
代码执行过程计算机的内存空间不够,可以采购更高性能的计算机;但消耗的的时间则是无法弥补的,所以说空间是廉价的,时间是无价的。所以我们需要将时间复杂度向空间复杂度进行转换。具体方式是采用更复杂的数据结构,进行时间复杂度向空间复杂度的转换。
原文:https://www.cnblogs.com/YLLLike/p/12937263.html