El término no recursivo de la relación de recurrencia es el trabajo para fusionar soluciones de subproblemas. El nivelk de su árbol de recurrencia (binario) contiene 2k subproblemas con tamaño n2k, así que primero necesitas encontrar el trabajo total en el nivel k y luego resumir este trabajo en todos los niveles de los árboles.
Por ejemplo, si el trabajo es constante C, entonces el trabajo total en el nivel k estarán 2k⋅Cy el tiempo total T(n) se dará por la siguiente suma:
T(n)=∑k=1log2n2kC=C(2log2n+1−2)=Θ(n)
Sin embargo, si el trabajo crece logarítmicamente con el tamaño del problema, deberá calcular con precisión la solución. La serie sería la siguiente:
T(n)=log2n+2log2(n2)+4log2(n4)+8log2(n8)+....log2n times
Será una suma bastante compleja:
T(n)=log2n+∑k=1log2n2klog2(n2k)
Voy a denotar temporalmente m=log2n y simplifica la suma anterior:
∑k=1m2klog2(n2k)==∑k=1m2k(log2n−k)==log2n∑k=1m2k−∑k=1mk2k==log2n(2m+1−2)−(m2m+1−2m+1+2)
Aquí usé una fórmula para el ∑mk=1k2ksuma de la calculadora de álgebra simbólica en línea Wolfram | Alpha . Entonces necesitamos reemplazarm de vuelta por log2n:
T(n)=log2n+2nlog2n−2log2n−2nlog2n+2n−2
=2n−log2n−2=Θ(n)
QED