算法正确性和复杂度分析

算法正确性——循环不变式

算法复杂度的计算

方法一 代换法

  —局部代换

    这里直接对n变量进行代换

    —替换成对数或者指数的情形 n = 2^m

  —整体代换 

    这里直接对递推项进行代换

    —替换成内部递推下标的形式 T(2^n) = S(n)

 

方法二 递归树法

  —用实例说明

    

    —分析每一层的内容

      —除了递归项的内容拿出来,如第一种树把T(n-kn)作为下一层进行计算

      —递归项按层写出

 

方法三 主定理

  —f(n)必须是n的多项式规模的才能使用主定理

    —

    —f(n)比较小,那么前面a,b确定的复杂度做主导

    —f(n)和a,b持平,那么是2

    —f(n)比较大,且满足后面的规则性条件,就以f(n)作为主导

添加次数较小的项

  —由于不等式方向问题,需要抵消f(n),需要添加不同次数的项

转载于:https://www.cnblogs.com/siyudemo/archive/2013/06/13/3133203.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值