本节主要通过建立数学模型,来计算算法的运行时间。
算法的运行时间=所有操作的开销乘以操作的次数之和
下表展示了各种操作所需要的时间(单位:纳秒)
整数加法 2.1
整数乘法 2.4
整数除法 5.4
浮点加法 4.6
浮点乘法 4.2
浮点除法 13.5
sin 91.3
arctan 129.0
计算数据中0的个数
1
2
3
4
|
int count
= 0 ; for ( int i= 0 ;
i < N; i++) if (a[i]
== 0 ) count++; |
变量定义 2次
赋值操作 2次
小于比较 N+1次
等于比较 N次
数组访问 N次
增加操作 N 到 2N次
2+2+N+1+N+N+1.5N = 5+4.5N
在计算算法运行时间的时候,可以忽略系数较低的项。比如:N^3 + 20N + 16 可以简化成 N^3。
原则上来说,精确的数学模型是有的。但是实际应用中,精确的公式非常复杂,所以一般情况下都使用近似模型。在本课程中采用了近似模型。
普林斯顿公开课 算法1-3:数学模型,布布扣,bubuko.com
原文:http://blog.csdn.net/caipeichao2/article/details/27707157