Cómo resolver la siguiente ecuación recursiva

Por lo general, al resolver algo como esto, solo desea la solución big-O y no una respuesta exacta. Podemos comenzar expandiendo la recurrencia para ver qué sucede. Podemos expandir [matemáticas] 3T (n / 4) + n \ cdot \ ln ^ 3n [/ matemáticas] a [matemáticas] n \ cdot \ ln ^ 3n + \ frac {3} {4} n \ cdot \ ln ^ 3 (n / 4) + 9T (n / 16) [/ matemáticas]. Como [math] \ ln ^ 3 (n / 4) = \ ln ^ 2 (\ ln n – \ ln 4) [/ math] es aproximadamente [math] \ ln ^ 3n [/ math], solo trataremos [matemáticas] \ ln ^ 3 (n / 4) [/ matemáticas] como [matemáticas] \ ln ^ 3n [/ matemáticas]. Como se trata de una sobreestimación, también es seguro hacerlo para el análisis big-O.

Usando esta aproximación, obtenemos [math] n \ cdot \ ln ^ 3n + \ frac {3} {4} n \ cdot \ ln ^ 3 (n) + 9T (n / 16) [/ math]. El patrón se hace evidente en este punto, es [matemáticas] \ sum_i (3/4) ^ en \ cdot \ ln ^ 3n = n \ cdot \ ln ^ 3n \ cdot \ sum_i (3/4) ^ i [/ matemáticas ] La suma infinita de [matemáticas] x ^ i [/ matemáticas] es igual a [matemáticas] \ frac {1} {1-x} [/ matemáticas] para [matemáticas] x [/ matemáticas] con un valor absoluto menor que 1, así que esto termina como [matemáticas] 4n \ cdot \ ln ^ 3n [/ matemáticas]. Al hacer una verificación rápida de la cordura ejecutando la recurrencia de los primeros 10 millones de valores, podemos ver que esta aproximación hace un trabajo bastante bueno, sobreestimando en un factor menor que 1.2 para el valor de 10 millones.

Usando la notación big-O, eliminamos los factores constantes y llegamos a una respuesta de [matemáticas] T (n) \ en O (n \ ln ^ 3n) [/ matemáticas]. Como [math] T (n) \ ge n \ ln ^ 3n [/ math], también tenemos [math] T (n) \ in \ Omega (n \ ln ^ 3n) [/ math], entonces [math] T (n) \ in \ Theta (n \ ln ^ 3n) [/ math].