Fonctions récursives Flashcards
Quels sont les Algorithmes de type diviser pour régner? (3)
- Tri fusion
- Tri rapide
- Algorithme de sélection
Quels sont les Analyse asymptotique des fonctions récursives? (3)
- Méthode itérative
- Méthode de l’arbre de récursivité
- Méthode générale
Quelle est la particularité d’une fonction récursive?
Fonction dont le calcul nécessite d’invoquer la
fonction elle-même
Quelles sont les deux parties de tout processus recursif?
1) Une formule simple (cas de base, règle de sortie) exécutable sans récursivité
donnant généralement une borne inférieure où le processus récursif s’arrête
(ex: 0! = 1).
2) Une méthode générale qui réduit un cas particulier en un ou plusieurs cas plus
petit, ramenant progessivement par réduction vers le cas de base (ex: n * (n - 1)! ).
Que doit être posé pour effectuer l’analyse asymptotique d’une fonction récursive?
équation de récurrence
Q’effectue la Méthode par itération? et nomme des exemples classiques
Effectue l’expansion de l’équation de récurrence afin de la résoudre. Méthode de l’arbre de récursivité Nombre de Fibonacci la tour de Hanoi
voici le résumé du problème de la tour de hanoi
Transporter les anneaux empilés en ordre croissant de la tour d’origine (1) vers la tour de destination (3) en utilisant la tour intermédiaire (2)
seule règle: En aucun cas, un anneau ne peut être empilé sur un anneau de dimension
inférieure.
Solution???
- S’attaquer au plus difficile en premier soit déplacer l’anneau 64 (le + grand)
- L’anneau 64 doit nécessairement passer directement de la tour 1 à la tour 3.
- Faire le même processus pour les 63 autres anneaux récursivement
- Prévoir une règle d’arrêt des appels récursifs.
Décrit l’algorithme de la tour de hanoi en étape ou avec arbre
DéplacerAnneau(anneau,tourDépart,tourArrivée,tourTemp)
- si anneau > 0
- DéplacerAnneau(anneau-1,tourDépart,tourTemp,tourArrivée)
- Effectuer le déplacement tourDépart vers tourArrivée
- DéplacerAnneau(anneau-1,tourTemp,tourArrivée,tourDépart)
voir dia 15 pour arbre
Pour le problème de la tour de hanoi qu’elle est l’équation du nombre de déplacement
2n(exp)-1
Algorithmes de type « diviser pour régner » a combien d’étapes et qu’elles sont-elles? avec exemple
– Diviser le problème en sous-problèmes indépendants.
– Conquérir en résolvant récursivement chacun des sousproblèmes.
– Combiner les solutions des sous-problèmes pour obtenir la
solution au problème original.
Exemples:
– Recherche dichotomique (binaire)
– Tri rapide
– Trouver les points les plus rapprochés
quel est le principe de l’algorithme tri par fusion?
– Diviser
Sépare la liste à trier en deux listes de longueurs égales.
– Conquérir
Appel récursif sur les deux sous-listes.
– Combiner
fusionne les deux sous-listes triées pour obtenir une
seule liste triée.
La méthode générale donne une recette pour résoudre les récurrences de la forme, quels sont les paramètres de cette recette .
–a ) ≥ 1 et b, > 1 constantes
– F (n) une fonction asymptotiquement positive
Récurrence de type “diviser pour régner”
Voir pour la méthode générale les dia 23 à 28
Fait un des exercices de dia 27
la plupart des données réelles ne sont pas
entièrement aléatoires, pourquoi?
• Il y a des séquences qui sont déjà triés
• D’autres sont en ordre décroissant
• Il est possible de prendre avantage de ces
caractéristiques pour améliorer l’algorithme
Comment voir le Tri fusion naturel
• Trouver les séquences en ordre croissant
• Trouver les séquences en ordre strictement
décroissant
• Inverser les séquences avec un algorithme linéaire
• Fusionner les différentes séquences trouvées