时间复杂度和空间复杂度
背景:
算法时间开销问题与机器性能、编程语言的执行效率和编程程序产生的机器指令质量有关。因此如果仅仅用事后统计法(运行结束后再统计)是不可靠的。
算法时间复杂性
事前预估算法的时间开销T(n)与问题规模大小n的关系(T表示“time”时间);
表达式:
T(n)=3n+3;(通常保留最高阶)
T(n)=3n=O(n);(大O表示同阶,同等数量级)
T₂(n)=O(n²)…以此类推
PS:常见的数值比较
O(1)<O(log₂n)<O(nlog₂n)<O(n²)<O(n³)<O(2ⁿ)<O(n!)<O(nⁿ)
算法空间复杂性
大小与问题规模无关。无论问题规模如何,算法运行所需要的内存都是固定的。
表达式: S(n)=O(1)
常见的比较和时间复杂度一样。