-
Probleme de recursivité
Salut à tous,
Voila le probleme,
lorsque j'applique une fonction qui repete elle meme plusieurs fois,
on peut dire n fois (100000 chez moi) je reçoi un msg EStackOverflow ...
(la pile est pleine)
donc, est ce qu'il ya une methode pour optimiser ce probleme (meme la methode dynamique pour le tri eu le meme probleme :()
Merci d'avance!
-
C'est un problème inhérent aux méthodes récursives :
dès que la profondeur de récursion devient importante, le problème survient. Pour le retarder, il faut réduire au strict minimum le nombre et la taille des paramètres des fonctions et des variables locales (et si on le peut, augmenter la taille de la pile).
De plus, la récursivité souffre d'un handicap au niveau de la vitesse d'exécution (il faut faire tous les allers-retours dans la fonction) ce qui la rend peu efficace (même si elle permet souvent une écriture simple et compacte d'un algorithme)
Donc à n'utiliser que si la récursion n'est pas profonde et si le temps d'exécution n'est pas critique.
Sinon, se tourner vers une version itérative de l'algorithme.