算法运行时间计算一般法则

法则1-for循环

一个for循环的运行时间至多是该for循环内部那些语句(包括测试)的运行时间乘以迭代的次数。

法则2-嵌套的for循环

从里向外分析这些循环。在以组嵌套循环内部的一条语句总的运行时间为该语句的运行时间诚意改组所有的for循环的大小的乘积。

例如,下列程序片段为O(N^2)--联想到冒泡排序就是双重for循环:

for(i=0;i<n;i++){

    for(j=0;j<n;j++){

       k++;

    }

}

法则3-顺序语句

将各个语句的运行时间求和即可(这意味着,其中的最大值就是所得的运行时间;

例如,下面的程序片段先是花费O(N),接着是O(N^2),因此总量也是O(N^2):

for(i=0;i<n;i++)

   a[i]=0;

for(i=0;i<n;i++)

   for(j=0;j<n;j++)

     a[i]+=a[j]+i+j;

法则4-if/else语句

对于程序片段

if(condition)

   S1;

else

   S2;

一个if/else语句的运行时间从不超过判断的运行时间再加上S1和S2中运行时间长者的总的运行时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值