使用主法求解T(n)= 2T(n / 2)+ n / log n和T(n)= 4T(n / 2)+ n / log n之间的差异

时间:2015-01-22 15:54:31

标签: algorithm asymptotic-complexity recurrence

我最近偶然发现了一个资源,其中MM的2T(n / 2)+ n / log n 类型被宣布无法解析。

我接受它作为一个引理,直到今天,当另一个资源被证明是一个矛盾(在某种意义上)。

根据资源(下面的链接):其中的Q7和Q18是rec。分别在问题1和2中,Q7的答案表明它不能通过给出'多项式差异b / w f(n)和n ^(记录基数b)'的原因来解决。 相反,答案18使用案例1解决了第二次复发(在这里的问题中)。

http://www.csd.uwo.ca/~moreno/CS433-CS9624/Resources/master.pdf

有人可以清除这种困惑吗?

2 个答案:

答案 0 :(得分:2)

如果您尝试将主定理应用于

T(n) = 2T(n/2) + n/log n

您认为a = 2, b = 2表示logb(a) = 1

  1. 您可以应用案例1吗?0 < c < logb(a) = 1。是n/logn = O(n^c)。不,因为n/logn的增长速度比n^c
  2. 快得多
  3. 你能申请案例2吗?不。c = 1您需要找到一些 k&gt; 0 ,以便n/log n = Theta(n log^k n )
  4. 你能申请案例3吗? c > 1,是n/logn = Big Omega(n^c)?不,因为它甚至不是Big Omega(n)
  5. 如果您尝试将主定理应用于

    T(n) = 4T(n/2) + n/log n
    

    您认为a = 4, b = 2表示logb(a) = 2

    1. 你可以申请案例1吗? c < logb(a) = 2。是n/logn = O(n^0)n/logn = O(n^1)。确实是n/logn = O(n)。因此我们有

      T(n) = Theta(n^2)
      
    2. 注意:关于0&lt; c&lt; 1,case 1

      案例1更多的是关于分析。

      f(x) = x/log(x) , g(x) = x^c , 0< c < 1
      f(x) is O(g(x)) if f(x) < M g(x) after some x0, for some M finite, so 
      f(x) is O(g(x)) if f(x)/g(x) < M cause we know they are positive
      

      这不是真的我们提出y = log x

      f2(y) = e^y/y , g2(y) = e^cy , 0< c < 1
      f2(y)/g2(y) = (e^y/y) / (e^cy) = e^(1-c)y / y  , 0< c < 1
      
      lim inf f2(y)/g2(y) = inf
      lim inf f(x)/g(x) = inf
      

答案 1 :(得分:1)

这是因为在Q18中我们有a = 4b = 2,因此我们得到n^{log(b,a)} = n^2,其指数严格大于n/log(n)的多项式部分的指数