我对算法还很陌生,遇到一个我不知道如何应用主定理的问题:
我们有一个算法A
,它通过创建3个大小为P
的子问题,递归求解每个子问题,然后在 {{1 }} 时间。与 2n/3
相比,该算法的运行时间会更好吗?证明你的答案。
我在这里知道的是O(nlogn)
,O(n)
,但是我该如何处理 a=3
?
答案 0 :(得分:2)
因此,递归公式为T(n) = 3T(2n/3) + O(n\log(n))
。作为f(n) = O(n\log(n)) = O(n^{\log(3)/\log(1.5)}) ~ O(n^{2.7})
,从主定理中我们可以说T(n) = \Theta(n^{2.7})
。
因此,T(n) = \Omega(n^{2.7})
。