算法分析之计数与渐进分析

算法分析三方面

  1. 正确性分析:对一个能得到终结结果的算法的结果进行正确性分析(顺口溜)
  2. 时空效率分析:对算法的实现运行所用空间和所需步骤进行分析。
  3. 时空特性分析:除了以上两点还有诸如:健壮性、稳定性、可维护性、可拓展性等方面的分析。

计数分析

计数分析是算法时空效率分析的基石。如下一段代码:

for(int i = 1;i<=n;i*=2)
{
     for(int j = 1;j<=i;j++)
     {
         l++;
     }
}

本段代码的核心计算部分就是l++,要对这段代码进行计数分析,首先来看两段循环执行过程。
第一层循环i的取值范围(i=2^N;N<=logn(以2为底)),所以l++的运行次数就是2的阶乘的累加,所以有
f(n)=∑i=1logn2i=2n-2;

渐近分析

忽略外界因素,仅仅对算法的输入n趋向于无穷大的时候算法的效率表现。
渐进分析的三个符号:O(表示渐进上界<=),Ω(渐进下界>=),Θ(准确界)
怎样判断当n向于正无穷大时f(n)的阶的情况?
高等数学求极限一章,让f(n)与已知阶g(n)做商在趋向于正无穷时的结果判断,f(n)与g(n)是同阶,还是高阶。
递归树求渐近上界
fg:T(n) = 3T(n/3)+O(logn)
递归树
Tolal = O(n)
证明:T(n) = 3T(n/3)+O(logn) <=cn + clogn
当 n= 1,对c>=1都成立;
当 n>1,T(n) = 3T(n/3)+O(logn) <=cn + clogn
=c(n+logn)
=θ(max(n,logn))
所以T(n) 的渐进上界是 O(n)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值