普林斯顿公开课 算法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。


原则上来说,精确的数学模型是有的。但是实际应用中,精确的公式非常复杂,所以一般情况下都使用近似模型。在本课程中采用了近似模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值