Junior
Quelle est la différence entre réaliser une même tâche en utilisant la récursion et une boucle?
sobes.tech IA
Réponse de l'IA
La récursion utilise l'appel à la même fonction pour résoudre un problème, en le divisant en sous-tâches plus petites jusqu'au cas de base. La boucle, quant à elle, répète un bloc de code un nombre déterminé de fois ou jusqu'à ce qu'une condition soit remplie.
| Caractéristique | Récursion | Boucle |
|---|---|---|
| Exécution | Appel de la fonction | Itération |
| Mémoire | Utilise la pile d'appels | Utilise des variables de compteur/condition |
| Lisibilité | Peut être plus concise pour certaines tâches | Souvent plus directe |
| Performance | Peut être plus lente en raison des coûts d'appels | Généralement plus efficace |
| Dépassement de pile | Risque de dépassement en cas de récursion profonde | Aucun risque de dépassement de pile |
Exemple en C# (factorielle):
Implémentation récursive:
// Calcul récursif de la factorielle
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Cas de base
}
return n * FactorialRecursive(n - 1); // Appel récursif
}
Implémentation avec boucle:
// Calcul de la factorielle avec une boucle
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}