程序运行时间计算


int sum(int N){
  int i,P ;
  P = 0;                           //1
  for(i=0;i<=N;i++)       //2
            P += i * i * i ;    //3
  return P;                     //4
}
分析:

声明不计时间, 第一句,第四句各占用一个时间单位。

第三句每执行一次占用四个时间单位,两次乘法,一次加法,一次赋值。而执行N次共占用4N个时间单位。

第二行初始化i,(一个时间单位),   测试i<=N,(N+1个时间单位),     i++(N个时间单位)   。总共2N+2。

忽略调用,返回值的开销,以上总共为6N+4,故该函数 是O(N)。第三行每次执行是O(1)语句,故O(N)

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


一般法则:

1,for循环:一次for循环的运行时间至多是循环内语句的运行时间*迭代的次数。

2,嵌套的for循环:内部的一条语句总的运行时间是该语句的运行时间*该组所有的for循环的大小的乘积

3,顺序语句:各个语句的运行时间之和。

4,if/else:if(判断) 语句1 ; else 语句2 ;

         一个if/else语句的时间不超过 判断+(语句1,2中运行时间长的其总的运行时间)。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值