O termo não recursivo da relação de recorrência é o trabalho para mesclar soluções de subproblemas. O nívelk da sua árvore de recorrência (binária) contém 2k subproblemas com tamanho n2k, então você precisa primeiro encontrar o trabalho total no nível k e, em seguida, resumir esse trabalho em todos os níveis da árvore.
Por exemplo, se o trabalho for constante C, então o trabalho total no nível k será 2k⋅ Ce o tempo total T( N ) será dada pela seguinte soma:
T( n ) =∑k = 1registro2n2kC= C(2registro2n +1- 2 ) = Θ ( n )
No entanto, se o trabalho crescer logaritmicamente com o tamanho do problema, você precisará calcular com precisão a solução. A série seria como a seguinte:
T( n ) =registro2n +2registro2(n2) + 4registro2(n4) + 8registro2(n8) + . . . .registro2n vezes
Será uma soma bastante complexa:
T( n ) =registro2n +∑k = 1registro2n2kregistro2(n2k)
Denotarei temporariamente m =registro2n e simplifique a soma acima:
∑k = 1m2kregistro2(n2k) ==∑k = 1m2k(registro2n -k)==registro2n∑k = 1m2k-∑k = 1mk2k==registro2n (2m + 1- 2 ) - ( m2m + 1-2m + 1+ 2 )
Aqui eu usei uma fórmula para o ∑mk = 1k2k soma do calculadora on-line de álgebra simbólica Wolfram | Alpha . Então precisamos substituirm de volta por registro2n:
T( n ) =registro2n +2nregistro2n -2registro2n -2nregistro2n +2n-2
= 2 n -registro2n -2=Θ(n)
QED