vue La récursivité en PHP
Kommunauty
Connexion
Inscription

La récursivité en PHP


Sypix Messages : 892

Salut, je voulais savoir se que vous pensiez de la récursivité en PHP.

Vous êtes adeptes de cette pratique ? (Ou vous préférez les structures de boucles classique ?)

Personnellement je trouve que cette pratique peut être très utiles quand on travail sur des listes dont la limite n'est pas définie

Mais en dehors de ça je vois pas trop a quoi ça sert ...

C'est juste pour avoir votre avis la dessus, vous l'utilisez vous ? Pour quoi faire ?

Voila voila

mardi 12 novembre 2013

SiMax Messages : 7572

Salut,

Ca pourrait être utile pour des fonctions mathématiques un peu compliquées mais jusqu'ici je n'en ai jamais vraiment eu besoin. Généralement, on peut très bien s'en sortir avec for() et while().

Tu en as besoin dans un usage particulier ?

mardi 12 novembre 2013

Sypix Messages : 892

Non mais j'ai lu un article en trainant sur le web donc j'ai appris a m'en servir mais j'ai l'impression que ça a pas beaucoup d’utilité comme tu me le confirme (sauf si je fait des maths du coup )

mardi 12 novembre 2013

Homer Messages : 1925

Perso les boucles for() et while() me vont aussi très bien, je crois pas avoir fait autrement, faudra que je me renseigne d'ailleurs

mardi 12 novembre 2013

Sypix Messages : 892

La récursivité ça permet de faire des boucles avec des fonctions (une fonction qui s'appelle elle même en gros)

mardi 12 novembre 2013 (Dernière édition mardi 12 novembre 2013)

Homer Messages : 1925

Ah oui ok, doit bien y'avoir une utilité à ça

mercredi 13 novembre 2013

Mizur Messages : 6615

Bien sur que c'est utile. Pour faire des programmes de base, pas besoin, mais quand tu perces un peu dans l'algorithmique, pour faire des scripts de tri de grands tableaux ou de recherche par exemple, ça se fait en récursif pour obtenir un temps de calcul logarithmique. Sinon c'est au mieux linéaire au pire exponentiel et bonne chance pour tri des tableaux avec des centaines de milliers de valeurs

mercredi 13 novembre 2013 (Dernière édition mercredi 13 novembre 2013)

Vanyali Messages : 1298

Il y a un théorème mathématique qui dis que tout les problème résolut en récursif peuvent être résolus en itératifs. Cependant, dans des cas complexe, la version récursive est beaucoup plus intuitive. Cependant, les fonctions itératives seront toujours plus efficaces que les fonctions récursives en terme de coût (coût en temps et mémoire) à condition que les deux soit bien codées bien sûr.

Pour continuer l'exemple des tris, faire un algorithme itératif pour le tri fusion ou le tri rapide, c'est humainement extrêmement dur à imaginer (je ne sais même pas si quelqu'un à trouvé, je ne me suis jamais penché sur le problème, ça se trouve c'est pas si difficile mais plus que d'imaginer et comprendre la version récursive c'est sûr). pour info le principe de ces deux tris c'est de diviser chaque tableau en deux sous tableau et appliquer le tri à ces sous tableau et ainsi de suite jusqu'à avoir des tableau de taille 1 et 2 et ensuite remonter dans l'autre sens.

Avec une version itérative il faudrait utiliser un arbre en fait (je crois que c'est le principe du tri par tas d'ailleurs) alors que la version récursive, il suffit de rappeler deux fois la même fonction avec les sous tableau, c'est très simple

mercredi 13 novembre 2013

Mizur Messages : 6615

Comment on peut imaginer un Quick Sort en itératif ? Je serais curieux de voir ça ! Hate que quelqu'un le découvre.

Cependant, les fonctions itératives seront toujours plus efficaces que les fonctions récursives en terme de coût (coût en temps et mémoire) à condition que les deux soit bien codées bien sûr.

Pas d'accord ! Par définition les temps de calculs sont forcément plus courts avec du log(N) (pour N données traitées) que du N² par exemple (pour des exemples de tri standards) non ?

jeudi 14 novembre 2013

Homer Messages : 1925

Chaud de lire ça au reveil

En tout cas je comprend parfaitement le principe et si ça se trouve je l'ai déjà vu passé devant moi

jeudi 14 novembre 2013

Page suivante »