Le terme non récursif de la relation de récurrence est le travail de fusion de solutions de sous-problèmes. Le niveauk de votre arbre de récurrence (binaire) contient 2k sous-problèmes avec taille n2k, vous devez donc d'abord trouver le travail total au niveau k puis de résumer ce travail sur tous les niveaux d'arbre.
Par exemple, si le travail est constant C, puis le travail total au niveau k sera 2k⋅ Cet le temps total T( n ) sera donnée par la somme suivante:
T( n ) =∑k = 1Journal2n2kC= C(2Journal2n +1- 2 ) = Θ ( n )
Cependant, si le travail augmente logarithmiquement avec la taille du problème, vous devrez calculer avec précision la solution. La série serait la suivante:
T( n ) =Journal2n +2Journal2(n2) + 4Journal2(n4) + 8Journal2(n8) + . . . .Journal2n fois
Ce sera une somme assez complexe:
T( n ) =Journal2n +∑k = 1Journal2n2kJournal2(n2k)
Je dénote temporairement m =Journal2n et simplifiez la sommation ci-dessus:
∑k = 1m2kJournal2(n2k) ==∑k = 1m2k(Journal2n -k)==Journal2n∑k = 1m2k-∑k = 1mk2k==Journal2n (2m + 1- 2 ) - ( m2m + 1-2m + 1+ 2 )
Ici, j'ai utilisé une formule pour le ∑mk = 1k2ksomme du calculateur d'algèbre symbolique en ligne Wolfram | Alpha . Ensuite, nous devons remplacerm de retour par Journal2n:
T( n ) =Journal2n +2nJournal2n -2Journal2n -2nJournal2n +2n-2
= 2 n -Journal2n -2=Θ(n)
QED