Recursivité [Résolu]

culroussi 12 Messages postés vendredi 30 avril 2004Date d'inscription 17 octobre 2005 Dernière intervention - 7 oct. 2005 à 00:59 - Dernière réponse : khabdou 12 Messages postés vendredi 31 août 2007Date d'inscription 4 mai 2008 Dernière intervention
- 2 mai 2008 à 18:45
J'ai lu, je sais plus trop ou, que l'appel d'une fonction etait plus lent que de placer le code de la fonction directement dans le code principal (je suis pas une grosse bete en info, ya une histoire de variables placees dans la pile et en gros c est plus long ???)

Alors la petite question :
Pour ce qui est des fonctions recursives simples, du genre du calcul de factoriel, ce serait pas plus rapide d'utiliser des boucles iteratives pour economiser du processeur et de la memoire ????

Les fonctions recursives sont plus elegantes, mais si je fais un jeu et qu'il y a plein d'appels de fonctions recursives, je me demande s'il ne vaudrait pas mieux utiliser des iterations => plus rapide ????

Et bonne nuit a ceux qui dorment deja !!!!
Afficher la suite 

10 réponses

Répondre au sujet
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 7 oct. 2005 à 06:21
+3
Utile
les fonctions récursives sont effectivements plus 'lentes' que les itératives... car, il faut recopier le context de chaque récursivité sur la pile... etc. pour à la fin dépiler.

bref... mais attention les fonction itératives sont souvent beaucoup plus difficiles à écrire... et au final, on n'est pas toujours gagnant...

à toi de voir.

Sébastien FERRAND
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sebmafate
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 7 oct. 2005 à 09:07
+3
Utile
Si tu peux choisir, preferes largement les fonctions iteratives qui seront toujours

beaucoup plus rapides et moins gourmandes en memoires que les recursives.



En plus une fonction recursive peut te faire planter un prog puisque tu es limite par

la taille de la pile qui n'est pas tres grande.

La brigade meurt mais ne se rend pas (Hisoka)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_poullos
culroussi 12 Messages postés vendredi 30 avril 2004Date d'inscription 17 octobre 2005 Dernière intervention - 7 oct. 2005 à 14:10
0
Utile
Merci pour vos reponses,

C'est vraiment sympa de faire par de vos connaissances.
Commenter la réponse de culroussi
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 8 oct. 2005 à 09:23
0
Utile
Et en plus les fonctions récursives ça donne un de ces mal de tête à déboguer.
Commenter la réponse de Lutinore
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 8 oct. 2005 à 09:39
0
Utile
je ne suis pas vraiment d'accord... il est parfois plus facile de débugger des fonctions récursives.

de toute façon, les fonctions récursives sont parfois nécessaire... un exemple simple : parcourir la collection de contrôles d'un formulaire...

Sébastien FERRAND
[MVP C#]
Commenter la réponse de sebmafate
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 8 oct. 2005 à 11:21
0
Utile
Ouaip celle la en version récursive je l'ai déja postée sur le forum, mais je ne sais plus où..
Commenter la réponse de Lutinore
t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention - 8 oct. 2005 à 20:13
0
Utile
[Message en retard]

Salut, perso je préfere débugger une récursive. Et puis dans certains
cas elles s'impose, pour un objet recordset de adodb par exemple
Commenter la réponse de t_barbillon
khabdou 12 Messages postés vendredi 31 août 2007Date d'inscription 4 mai 2008 Dernière intervention - 1 mai 2008 à 14:39
0
Utile
Salut,
Pour une fonction récursive peut-on amèliorer la taille de la pile d'execution?

merci d'avance!!
Commenter la réponse de khabdou
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 1 mai 2008 à 14:58
0
Utile
Salut,

Oui, ça se fait à la création du thread, ou en modifiant la valeur par défaut pour l'excutable complet.
Mais il est peu être temps de plutôt revoir l'architecture de l'élément causant cet overflow.

PS : Evite de ressusciter des sujets vieux de plusieurs années, ça limite fortement les chances de réponse.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
khabdou 12 Messages postés vendredi 31 août 2007Date d'inscription 4 mai 2008 Dernière intervention - 2 mai 2008 à 18:45
0
Utile
Merci beaucoup.....
J'ai vous envoyé un message incluant ma fonction recursive,
Merci de votre aide..
Commenter la réponse de khabdou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.