一、额外空间复杂度
需要开辟一些空间来支持算法的流程所需要的内存空间。
作为输入参数的空间,不算额外空间。
作为输出结果的空间,也不算额外空间。
如果你的流程只需要开辟有限几个变量,额外空间复杂度就是O(1)
二、算法常数项
在上一节认识时间复杂度中,时间复杂度是忽略低阶项和所有常数系数的
若两个时间复杂是一样的,那么在实际运行时那个效果更佳呢?
时间复杂度只是一个很重要的指标而已。如果两个时间复杂度一样的算法,你还要去在时间上拼优劣,就看谁的常数项更低了。
在比较算法常数项时,一般不会取理论分析的值,而是直接通过数据测试性能,
三、算法最优解
什么是算法最优解呢?
1. 在时间复杂度上尽可能做到低
2. 使用最少的额外空间
四、常见的时间复杂度
排名从好到差:
O(1)
O(logN)
O(N)
O(N*logN)
O(N^2)
O(N^3)
…
O(N^K)
O(2^N)
O(3^N)
…
O(K^N)
O(N!)