1.定义
(1)基本执行次数函数T
一般情况下算法基本操作的执行次数是关于n的某个函数,记做T(n)。
(2)同数量级函数
如果现在有一个关于n的辅助函数f(n),使得当n趋于无穷大时,T(n)/f(n)的极限值为一个不等于0的常熟,则称f(n)是T(n)的同数量级函数,记做T(n)=O(f(n))。
(3)时间复杂度O
O是用来表示数量级的符号。O(f(n))就是算法的渐进时间复杂度,简称时间复杂度。
2.常见算法复杂度
Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!)
3.如何计算算法时间复杂度
找到运行次数最多的语句,计算语句执行次数的数量级,用O(f(n))表示。
4.NP问题
Ο(log2n)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间。计算机科学家普遍认为前者是有效算法,把这类问题称为P类问题,而把后者称为NP问题。