Donc, je suis en train de suivre un cours sur les algorithmes et j'ai un problème pour résoudre les récurrences et obtenir le temps de fonctionnement. Je me demandais si quelqu'un pourrait m'expliquer en termes simples comment résoudre en utilisant la méthode de substitution. L'algorithme B résout les problèmes de taille n en résolvant récursivement deux sous-problèmes de taille n - 1 puis en combinant les solutions en temps constant.Résoudre les récurrences en utilisant la méthode de substitution
Ce qui m'a amené à venir avec la récurrence suivante: T(n)=2T(n-1)+O(1)
. Je suis ensuite venu avec O(1)=1
. Ce qui m'a donné les éléments suivants: T(n)=2T(n-1)+1
Voici ma tentative de résoudre
T(n)=2T(n-1)+1
=2(2T(n-2)+1)+1=4T(n-2)+3
=4(2T(n-3)+1)+3=8T(n-3)+7
=8(2T(n-4)+1)+7=16T(n-4)+15
=16(2T(n-5)+1)+15=32T(n-5)+31
=32T(2T(n-6)+1)+31=64T(n-6)+63
Si je le fais bien, comment puis-je continuer à obtenir le temps d'exécution? Quelqu'un peut-il expliquer en termes simples comment utiliser la méthode de substitution?
Merci! Donc j'étais sur la bonne piste. J'ai remarqué qu'il doublait chaque pas donc j'ai pensé que le Big-O était O (2^n). J'ai une autre question si cela ne vous dérange pas de poser la question, quand utilisez-vous le théorème de maître par rapport à la méthode de substitution? – user3561871
Vous pouvez uniquement utiliser le théorème maître pour les relations de récurrence d'un formulaire spécifique, voir https://en.wikipedia.org/wiki/Master_theorem. Personnellement, je vois si la relation de récurrence peut même être résolue en utilisant le théorème maître. Si ce n'est pas du bon formulaire, j'utilise la méthode de substitution. – kevchoi