Algorithm 关于时间复杂性和主定理的问题
我对算法很陌生,遇到了一个我不知道如何应用主定理的问题: 我们有一个算法Algorithm 关于时间复杂性和主定理的问题,algorithm,master-theorem,Algorithm,Master Theorem,我对算法很陌生,遇到了一个我不知道如何应用主定理的问题: 我们有一个算法A,它通过创建3个子问题来求解p,每个子问题的大小2n/3,递归求解每个子问题,然后在O(nlogn)时间内组合解。此算法的运行时间是否比O(n)更好?证明你的答案 这里我知道的是a=3,b=3/2,但是我如何处理O(nlogn)?Henve,递归公式是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},从主定理我们可以
A
,它通过创建3个子问题来求解p
,每个子问题的大小2n/3
,递归求解每个子问题,然后在O(nlogn)
时间内组合解。此算法的运行时间是否比O(n)
更好?证明你的答案
这里我知道的是
a=3
,b=3/2
,但是我如何处理O(nlogn)
?Henve,递归公式是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}
Henve,递归公式是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})
提示:提示: