算法的时间复杂度,用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着输入大小n的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。其中,T(n)代表算法执行的时间,f(n)代表T(n)的上界,继当n > c (任意常数),总有T(n) <= f(n)。
求解算法的时间复杂度的具体步骤是:
- 找出算法中的基本语句:即算法中执行次数最多的那条语句,通常是最内层循环的循环体。
- 计算基本语句的执行次数的数量级;
- 用大Ο记号表示算法的时间性能。
常见的时间复杂度按数量级递增排列依次为:常数0⑴、对数阶0(logn)、线形阶0(n)、线形对数阶0(nlogn)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(n^k)、指数阶0(2^n)。