算法的时间复杂度

计算一个算法的时间复杂度,就是计算程序需要运行多长时间。通常用大写的O符号来表示,最终只保留最高阶项且省略系数,考察在输入值趋近无穷时的所用时间。

O(n)表示渐进时间复杂度,o(n)表示最坏时间复杂度

计算方法:1、确定算法中各语句的执行次数,

                  2、确定其数量级,数量级一般包括:1,log(2)n,n^2,n^3,2^n,n!等

eg1:int fun(int n)//递归调用               

{

if(n<=1)

{return 0;}

return fun(n-1)+1//时间复杂度是n     从n开始调用,直到n=1结束调用,从n到n-1到n-2……,直到1,反过来想,共调用n次所以时间复杂度为O(n)

}

eg2:int fun(int n)

{

if(n<=1)

{return 0;}

return fun(n/2)+1//时间复杂度是log(2)n      调用后如果令n/2 = 1调用就结束了   n,n/2,n/4……反过来想是1,2,4,8……2^n,令2^n等于一,可知n=log(2)n

}

注意;①一般如果有循环的话,只需要算循环最内层的数量级就可以

           ②如果有二分例如快速幂,二分查找数量级为logn

           ③如果是循环套二分,则时间复杂度为nlogn

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值