设a>=1,b>1为常数,设f(n)为一函数,T(n)的递归式:
T(n)=aT(n/b)+f(n)
其中n/b指n/b的上取整或者是下取整。
那么T(n)可能有如下的渐进界:
1)e>0,有f(n)=O(n^(log_b(a)-e)),则T(n)=O(n^log_b(a))
2)若f(n)=O(n^log_b(a)),则T(n)=O(n^log_b(a)*log(n))
3)e>0,有f(n)=O(n^(log_b(a)+e)),且对于c>1,有足够大的n满足af(n/b)<=cf(n),则T(n)=O(f(n)).
本文探讨了递归式T(n)=aT(n/b)+f(n)的三种渐进界情况,分别对应f(n)的不同增长速度。第一种情况下,f(n)的增长远低于n的log_b(a)次方时,整体复杂度主要由递归部分决定;第二种情况下,f(n)与n的log_b(a)次方同阶增长时,复杂度中引入了对数因子;第三种情况下,f(n)增长较快但满足一定条件时,复杂度由f(n)决定。
1万+

被折叠的 条评论
为什么被折叠?



