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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值