Il termine non ricorsivo della relazione di ricorrenza è il lavoro per unire le soluzioni dei sottoproblemi. Il livello del tuo albero di ricorrenza (binario) contiene sottoproblemi con dimensione , quindi devi prima trovare il lavoro totale sul livello e poi riassumere questo lavoro su tutto i livelli degli alberi.k2kn2kk
Ad esempio, se il lavoro è costante , il lavoro totale sul livello sarà e il tempo totale sarà dato dalla seguente somma:Ck2k⋅CT(n)
T(n)=∑k=1log2n2kC=C(2log2n+1−2)=Θ(n)
Tuttavia, se il lavoro aumenta logaritmicamente con la dimensione del problema, è necessario calcolare accuratamente la soluzione. La serie sarebbe simile alla seguente:
T(n)=log2n+2log2(n2)+4log2(n4)+8log2(n8)+....log2n times
Sarà una somma abbastanza complessa:
T(n)=log2n+∑k=1log2n2klog2(n2k)
Denoterò temporaneamente e semplificherò la somma sopra:m=log2n
∑k=1m2klog2(n2k)==∑k=1m2k(log2n−k)==log2n∑k=1m2k−∑k=1mk2k==log2n(2m+1−2)−(m2m+1−2m+1+2)
Qui ho usato una formula per la somma dal calcolatore di algebra simbolica online Wolfram | Alpha . Quindi dobbiamo sostituire back con :∑mk=1k2kmlog2n
T(n)=log2n+2nlog2n−2log2n−2nlog2n+2n−2
=2n−log2n−2=Θ(n)
QED