La Relation de récurrence: la Résolution de Grand O de T(n-1)
Je suis à la résolution de certains par la relation de récurrence des problèmes pour Big O et jusqu'à présent, jusqu'à ce point ont rencontré des relations de récurrence qui participe de cette forme:
T(n) = a*T(n/b) + f(n)
Pour le haut, c'est assez facile pour moi de trouver le Big O la notation. Mais j'ai récemment jeté une balle courbe avec l'équation suivante:
T(n) = T(n-1) + 2
Je ne suis pas vraiment sûr de savoir comment aller autour de la résolution de ce pour Big O. en fait, j'ai essayé de le brancher dans l'équation suivante:
T(n) = T(n-1) + 2
T(n-1) = T(n-2)
T(n-2) = T(n-3)
Je ne suis pas entièrement sûr si cela est correct, mais je suis coincé et ont besoin d'un peu d'aide. Merci!
Vous devez vous connecter pour publier un commentaire.
En Supposant Que T(1) = 0
Ensemble k à n-1 et que vous avez
Par conséquent, il est O(n)
Depuis que la question est déjà une réponse, permettez-moi d'ajouter une certaine intuition derrière comment trouver la complexité de la récurrence.
T(n) = a*T(n/b) + f(n)
oùa
est le nombre de sous-problèmes, et chacun de ces subproblem taille1/b
du problème original. Mais la récurrenceT(n) = T(n-1) + 2
n'est techniquement pas "diviser" le problème en sous-problèmes. maître théorème ne s'applique pas ici.n
étapes et à chaque pas de temps constant, ce qui est2
dans ce cas. Donc, la complexité seraitO(n)
.Surtout je trouve la deuxième intuition très utile pour la plupart des récidives (peut être pas tous). Comme un exemple, vous pouvez essayer la même pour un même récurrence
T(n) = T(n-1) + n
, dont la complexité est, bien sûr,O(n^2)
.T(n) = 2*n = 2*(n-1)+2 = T(n-1)+2
Donc T(n) = 2*n ce qui implique O(n)