常见的时间复杂度如表2-10-1所示。

    执行次数 函数阶 非正式术语常数阶
    1 O(1) 常数阶
    2n + 3 O(n) 线性阶
    3n2 + 2n + 1 O(n 2 ) 平方阶
    5log2 n+ 20 O(logn) 对数阶
    2n+3nlog 2 n+19 O(nlogn) nlogn 阶
    6n 3 +2n 2 +3n+4 O(n 3 ) 立方阶
    2 n O(2 n ) 指数阶

    常用的时间复杂度所耗费的时间从小到大依次是:

    O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

    前面已经谈到了O(1)常数阶、O(logn)对数阶、O(n)线性阶、O(n²)平方阶等,至于O(nlogn)我们将会在今后的课程中介绍,而像O(n³),过大的n都会使得结果变得不现实。同样指数阶O(2n)和阶乘阶O(n!)等除非是很小的n值,否则哪怕n只是100,都是噩梦般的运行时间。所以这种不切实际的算法时间复杂度,一般我们都不去讨论它。