算法正确性和复杂度分析

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

算法复杂度的计算

方法一 代换法

  —局部代换

    这里直接对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/p/3133203.html