算法的效率
评估一个算法有两种方法
1.事后统计法
2.事前分析估算法
事后统计法:我们可以通过运行一个算法来获取这个算法的具体执行时间。虽然我们可以得到一个准确的数值,但是这个计算出来的数值依赖于硬件,软件,程序语言等多种环境因素,往往会掩盖算法本身的优劣,因此更倾向于事前分析估算法。
事前分析估算法:
高级语言编写的程序在计算机上运行所消耗的时间取决于下列因素
1.依据算法选择策略
2.问题规模大小
3.选择实现语言
4.编译的代码质量
5.机器执行速度
一个算法由控制结构(顺序、分支和循环)和原操作(固有数据类型的操作)构成,其时间取决于两者的综合效果。
通常会取一种对所研究问题来说是基本操的原操作,以该基本操作重复执行的次数作为算法的时间量度,我们称之为算法的渐近时间复杂度,简称时间复杂度。