本节主要通过建立数学模型。来计算算法的执行时间。
公式
算法的执行时间=全部操作的开销乘以操作的次数之和
开销
下表展示了各种操作所须要的时间(单位:纳秒)
-
整数加法 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。
原则上来说。精确的数学模型是有的。
可是实际应用中,精确的公式很复杂,所以普通情况下都使用近似模型。在本课程中採用了近似模型。