繁体   English   中英

用log n求解主定理:T(n)= 2T(n / 4)+ log n

[英]Solving master theorem with log n: T(n) = 2T(n/4) + log n

我目前正在尝试用主定理解决这种关系:

T(n)= 2T(n / 4)+对数n

我已经知道a = 2和b = 4,但是我对log n感到困惑。

我的脚本说:c(n)(此处将为log n)是Big O(n ^ d)的元素。

如果我能在这里找到我的d,我将比较a和b ^ d以找出我的主定理案例。

但是,由于它在此处登录为n,因此我不确定其Big O表示法。

我的意思是我可能会说这是O(n 1/2 )的元素,这将导致第二种情况,其中a和b ^ d是相同的,但它也是O(n 1 )的元素,那么它将是又是另一种情况。

一个有用的事实是,对于任何ε> 0,我们都知道

log n = O( )。

我们也知道

log n =Ω(1)

让我们看看这是否告诉我们什么。 我们知道,对于任何ε> 0,您的复发都受此限制。

S(n)= 2S(n / 4)+

让我们在这里使用主定理。 我们有a = 2,b = 4,和d =ε。 我们需要推理出log b a = log 4 2 = 1/2以及与d =ε的关系。 让我们将ε减小-例如,让我们选择ε= 0.000001。 然后我们有log b a <d,所以主定理说运行时间为

O(n log b a )= O(n 1/2 )。

接下来,考虑以下递归关系:

R(n)= 2R(n / 4)+ 1

这种复发会降低您的复发率。 使用主定理告诉我们,R(n)=Ω(n 1/2 )也是。

总体而言,我们看到您的复发率是O(n 1/2 )和Ω(n 1/2 ),上下限将您的复发率分为较大和较小的复发率。 因此,即使Master Theorem在这里不适用,您仍然可以使用Master Theorem声明运行时间为Θ(n 1/2 )。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM