簡體   English   中英

如何計算T(n)= 3T(n / 3)+ O(lg n)

[英]How to calculate T(n) = 3T(n/3) + O(lg n)

我知道O(lg n)T(n)含義,並且在算法分析中我不知道如何計算T(n) = 3T(n/3) + O(lg n) 我應該擴展它嗎?

就像:

T(n) = 3^2 *T(n/3^2) + O(lg n/3) + O(lg n) and so on...

然后我得到

T(n) = 3^(log b^n) * T(1)+ 3^[log b ^ (n-1)]* lg (n/(3^[log b ^(n-1)])) ...+ O(lg n/3) +O(lg n)

但是我如何才能找到正確的答案,又能找到一種簡單的方法呢?

我認為您可以使用大師定理。

T(n)=aT(n/b) + f(n)
Here a=3, b=3 and f(n)=O(log n)
f(n) = O(log n) = O(n)

這意味着答案是BigTheta(n)

有關Masters定理公式plz,請參閱Wikipedia。 有三個規則,非常簡單

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM