码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-06-01 10:42:00      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:算法   数学   应用   数据   

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


公式


算法的运行时间=所有操作的开销乘以操作的次数之和


开销


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

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

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

标签:算法   数学   应用   数据   

原文地址:http://blog.csdn.net/caipeichao2/article/details/27707157

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!