常用的时间复杂度所耗费的时间从小到大依次是:
而像O(n3)之后的都是不切实际的算法时间复杂度,一般我们都不去讨论它。
我们只需记住O(1)常数阶、O(logn)对数阶、O(n)线性阶、O(n2)平方阶和排序算法中经常用到的O(nlogn)。
记忆小诀窍:高中代数公式,当x较大时 —— x>logx>1
三种情况下的时间复杂度
最好情况实际意义不大
平均情况是所有情况中最有意义的,但很难通过分析得到
一般在没有特殊说明的情况下,都是指最坏时间复杂度。因为这是一种保证,那就是运行时间将不会再坏了。
算法空间复杂度
写代码时,完全可以用空间来换取时间。所以某种意义来说两者是对立的。
像时间复杂度只需要分析该算法在实现时所需的语句条数,空间复杂度只需要分析该算法在实现时所需的辅助单元即可。
通常所说的复杂度,都是指时间复杂度。