Les algorithmes sont en réalité des fonctions, qui doivent être appelées pour être exécutées.
La récursivité est le fait d'appeler une fonction à l'intérieur d'elle-même. C'est utiliser comme une boucle qui arrête de se répêter après une certaine condition (très ressemblant à une boucle Tant que... faire).
Dans certains langages de bas niveau, les boucles n'existent pas, il faut alors utiliser la récursivité.
Exemple :
Factorielle(x: entier) : entier
Données : x, le nombre dont on calculera la factorielle
Début
| Si x > 2 retourner x * Factorielle(x - 1)
| Sinon retourner x
| Fin si
FinMême exemple avec Tant que... faire :
Factorielle(x: entier) : entier
Données : x, le nombre dont on calculera la factorielle
Variables locales : resultat, contenant le resultat final
Début
| resultat <- 1
| Tant que x > 1 faire
| resultat <- x * resultat
| x <- x - 1
| Fin tant que
| Retourner resultat
FinConcevoir un algorithme récursif qui multiplie deux nombres en utilisant uniquement l'addition (attention aux nombres relatifs).
Concevoir un algorithme récursif qui calcule la somme des éléments positifs d’un tableau.
Concevoir un algorithme récursif qui réarrange les éléments d’un tableau en ordre inverse.