时间复杂度的表示方法
设解决一个问题的规模为n,基本操作被重复执行次数是n的一个函数f(n),则时间复杂度可记作: T(n)=O(f(n)) 它表示随着问题规模n的增长,算法执行时的增长率和f(n)的增长率相同。其中T(n)叫算法的渐进时间复杂度,简称时间复杂度。算法的时间复杂度考虑的只是对于问题规模n的增长率,则在难以精确计算的情况下,只需考虑它关于n的增长率或阶即可。
时间复杂度的计算方法
时间复杂的推导方法一般如下:
第一步:用常数1取代运行时间中的所有加法常数。
第二步:在修改后的运行次数函数中,只保留最高阶项。
第三步:如果最高阶项存在且不是1,则去除与这个项相乘的常数。
常见的时间复杂度
按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、k次方阶O(nk)、指数阶O(2n)。
主定理定义(Master Theorem)