Cours 3
Cours 3
Cours 3
Outline
Algorithmes récursifs
Application: factorielle
Application: tours de Hanoi
Paradigme ‘’diviser pour régner’’
Application: recherche dichotomique
Application: recherche maximum
1
Algorithmes récursifs Définition
2
Algorithmes récursifs Evolution d’un appel récursif
L’exécution d’un appel récursif passe par deux phases, la phase de
descente et la phase de remontée.
Dans la phase de descente, chaque appel récursif fait à son tour un appel
récursif.
En arrivant à la condition terminale, on commence la phase de remontée
qui se poursuit jusqu’à ce que l’appel initial soit terminé, ce qui termine le
processus récursif.
Exemple:
Récursivité simple
C’est une fonction qui contient dans son corps un seul appel
récursif.
Exemple: Fonction Factorielle
3
Algorithmes récursifs types de récursivité
Récursivité multiple
La fonction contient plus qu’un appel récursif dans son corps.
Exemple: Calcul du nombre de combinaisons en se servant de la
relation de Pascal:
Récursivité mutuelle
Des fonctions sont dites mutuelles récursives si elles dépendent
les unes des autres.
Exemple: La définition de la parité.
4
Algorithmes récursifs types de récursivité
Récursivité imbriquée
ça consiste à faire un appel récursif à l’intérieur d’un autre appel récursif.
Exemple: La fonction d’Ackermann.
10
5
Algorithmes récursifs terminale vers non terminale
11
12
6
Algorithmes récursifs Calcul de complexité
Exemple 1 : La fonction factorielle
Pour calculer la solution générale de cette équation, on peut procéder par
substitution:
13
14
7
Algorithmes récursifs Calcul de complexité
Exemple 2 : Tours de Hanoi
Conception de la solution
15
16
8
Calcul de complexité
Rappel Sommation
17
Le paradigme ‘’diviser pour régner’’ parcourt trois étapes à chaque appel
récursif à savoir:
Diviser: le problème en un certain nombre de sous-problèmes de taille
moindre.
Régner: sur les sous-problèmes en les résolvant d’une façon récursive ou
directement si la taille d’un sous-problème est assez réduite.
Combiner: les solutions des sous-problèmes en une solution globale
pour le problème initial.
18
9
Paradigme ‘’diviser pour régner’’ Principe
Principe:
19
10
Paradigme ‘’diviser pour régner’’ Complexité
21
11
Paradigme ‘’diviser pour régner’’ recherche dichotomique
24
12
Paradigme ‘’diviser pour régner’’ Recherche maximum
25
26
13
Paradigme ‘’diviser pour régner’’ Complexité
Exemple : Recherche maximum
27
14