首页 > 代码库 > 普林斯顿公开课 算法1-3:数学模型
普林斯顿公开课 算法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。
原则上来说,精确的数学模型是有的。但是实际应用中,精确的公式非常复杂,所以一般情况下都使用近似模型。在本课程中采用了近似模型。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。