概念
程序=数据结构+算法。算法是解决问题的步骤,一个问题可能有很多种解决的方法,这时候我们可以用时间复杂度来衡量这些不同解决办法的好坏。
计算过程
-
计算每行一句的执行次数;
-
计算出所有语句的执行次数总和,推导出一个n的表达式T(n);
-
找出同数量级的表达式;
使用一段代码来说明:
for i in range(n): //执行n次
for j in range(10): //执行n*10次
print(i, j) //执行n*10次
理解一下上述代码:
-
外层for循环执行的次数为n,内层for循环执行的次数为n * 10,print语句的执行次数也是n * 10
-
形成的表达式:T(n) = n + n * 10 + n * 10 = 21n
-
同数量级:n
-
T(n)/n = 21, 是一个常数,所以此算法的时间复杂度为n
表示
在计算机科学中,算法的时间复杂度是一个函数,它藐视了该算法的运行时间,时间复杂度常用大O符号(大O符号(是用于描述函数渐进行为的数学符号,意思是order of
(大约是))表示
那么上一步算法的时间复杂度可以标记为O(n)
几种类型
O(1): 常数
print(n) //执行一次,所以时间复杂度为O(1)
reference: