某算法的时间复杂度:
T(N)=4T(N2)+O(N2log2N)T(N)=4T(\dfrac{N}{2})+O(N^2\log^2N)T(N)=4T(2N)+O(N2log2N)
T(1)=O(1)T(1)=O(1)T(1)=O(1)
求该算法的时间复杂度。
用递归的形式算:
T(N)T(N)T(N)
=N2log2N+4×(N/2)2log2(N/2)+42×(N/4)2log2(N/4)...=N^2\log ^2N+4\times(N/2)^2\log^2(N/2)+4^2\times(N/4)^2\log^2(N/4)...=N2log2N+4×(N/2)2log2(N/2)+42×(N/4)2log2(N/4)...
=N2∑0logN(logN−i)2=N^2\sum\limits_{0}^{\log N}(\log N-i)^2=N20∑logN(logN−i)2
=O(N2log3N)=O(N^2\log^3N)=O(N2log3N)
但是我用主定理(花 5 分钟记的结论)算,是 Θ(N2logN2)\Theta(N^2\log N^2)Θ(N2logN2)。
所以请问我用主定理哪里算错了。。。
我现在唯一想到的可能就是 OOO 和 Θ\ThetaΘ 的区别。
求助