导读 时间复杂度表面的意思就是代码花费的时间,但是一般使用这个概念的时候,更注重的是随着数据量增长,代码执行时间的增长情况。一般认为一个...
时间复杂度表面的意思就是代码花费的时间,但是一般使用这个概念的时候,更注重的是随着数据量增长,代码执行时间的增长情况。
一般认为一个基本的运算为一次运行算,例如加减乘除判断等等例1和例2时间复杂度都可以简单认为是o(N),一般用时间复杂度的时候要取一个下限即可,不用那么精确,可能你认为例1是o(2N)而例2是o(n),但实际上这两者对于时间复杂度的作用来说没区别,前面已经说了,时间复杂度关注的是数据量的增长导致的时间增长情况,o(2N)和o(n)在数据量增加一倍的时候,时间开销都是增加一倍(线性增长)。
又例如两重循环的时间复杂度是o(N的平方),N扩大一倍,时间复杂度就扩大4倍。
所以时间复杂度主要是研究增长的问题,一般效率较好的算法要控制在o(N)或者o(log2N)。