一、算法效率的度量
(1)事后统计的方法
内容:计算机有计算程序运行时间的功能,我们可以运行完程序后查看程序的运行总时间,以此来判断程序的运行效率。
缺点:①易受环境因素的影响:计算机硬件和软件性能、编程语言的先进程度。②有些算法是不能事后统计的:导弹轨迹控制算法等
(2)事前分析评估的方法
通常我们写了一个程序该这么判断算法的好坏呢?
最直观的就是看该算法执行总时间。在这里我们排除其他环境影响(设每条指令执行的时间是相同的)
那么:
- 一条指令的执行时间 = 该指令的执行次数 × 指令执行的时间
- 程序的执行时间 = 指令的数量 × 一条指令的执行时间
由于我们设每条指令执行的时间是相同的,则程序的执行时间与指令总的执行数量是成正相关的。
算法的时间度量: T ( n ) = O ( f ( n )) 算法的时间度量:T(n)= O(f(n)) 算法的时间度量:T(n)=O(f(n))
**
计算时间复杂度的规则
**
①加法:多项相加,保留最高项,系数变为1
②乘法:多项相乘,都保留
③数量级从上至下依次增大
结论1:顺序执行的代码只会影响常数项,可以忽略
结论2:只需要分析循环中的一条基本操作与n的关系
结论3:多层循环嵌套,只关注最深层的循环