算法时间复杂度排行

时间:2021-10-20 17:08:04

几种常见的时间复杂度函数按数量级从小到大的顺序依次是:

Θ(lgn),Θ(sqrt(n)),Θ(n),Θ(nlgn),Θ(n 2 ),Θ(n 3 ),Θ(2 n ),Θ(n!)。

其中,lgn通常表示以10为底n的对数,但是对于Θ-notation来说,Θ(lgn)和Θ(log 2 n)并无区别(想一想这是为什么),在算法分析中lgn通常表示以2为底n的对数。可是什么算法的时间复杂度里会出现lgn呢?回顾插入排序的时间复杂度分析,无非是循环体的执行时间乘以循环次数,只有加和乘运算,怎么会出来lg呢?除了Θ-notation之外,表示算法的时间复杂度常用的还有一种Big-O notation。我们知道插入排序在最坏情况和平均情况下时间复杂度是Θ(n 2 ),在最好情况下是Θ(n),数量级比Θ(n 2 )要小,那么总结起来在各种情况下插入排序的时间复杂度是O(n 2 )。Θ的含义和“等于”类似,而大O的含义和“小于等于”类似。