时间复杂度的计算

大O推导法:

  1. 用常数1取代运行时间中的所有加法常数
  2. 在修改后的运行函数中,只保留最高阶项
  3. 如果最高阶项存在且不是1,则去除与这个项相乘的常数

常见情况:

1、常数阶

 时间复杂度的计算_第1张图片

运行四次,f(n)=4,常数,时间复杂度为O(1)

2、线性阶

线性阶的循环结构会复杂一些,要确定某个算法的阶次,需要确定特定语句或某个语句集运行的次数。因此要分析算法的复杂度,关键是要分析循环结构的运行情况。

3、对数阶

时间复杂度的计算_第2张图片

因为每次count*2后,距离结束循环更近了。也就是说有多少个2 相乘后大于n,退出循环。

数学公式:2x = n    -->     x = log2n

因此这个循环的时间复杂度为O(logn)

4、平方阶

时间复杂度的计算_第3张图片

f(n)=n*n*(1+1)-----O(n^2)

复杂语句

时间复杂度的计算_第4张图片

f(n)=n+n^2+n*(n(n+1)/2)----O(n^2)

你可能感兴趣的:(时间复杂度的计算)