普林斯顿公开课 算法1-3:数学模型

本节主要通过建立数学模型。来计算算法的执行时间。


公式


算法的执行时间=全部操作的开销乘以操作的次数之和


开销


下表展示了各种操作所须要的时间(单位:纳秒)

  • 整数加法 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。


原则上来说。精确的数学模型是有的。

可是实际应用中,精确的公式很复杂,所以普通情况下都使用近似模型。在本课程中採用了近似模型。

原文地址:https://www.cnblogs.com/ldxsuanfa/p/9962868.html