1 / 16

III. Récursivité

III. Récursivité. Principe et exemples Le paradigme «  divide & conquer  ». Récursivité. Algorithme récursif vs. itératif Qui s’appelle lui-même vs. non Lien filial avec les maths Définition du terme d’une suite par une récurrence Avantage Une conception plus simple

gale
Download Presentation

III. Récursivité

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. III. Récursivité Principe et exemples Le paradigme « divide & conquer »

  2. Récursivité • Algorithme récursif vs. itératif • Qui s’appelle lui-même vs. non • Lien filial avec les maths • Définition du terme d’une suite par une récurrence • Avantage • Une conception plus simple • moins de risque d’effets de bord • Inconvénient • Une complexité plus importante (pile d’appels) • plus lent

  3. Exemples • la factorielle • La puissance (exponentiation) • Le pgcd cf. Euclide

  4. La factorielle

  5. La factorielle

  6. La puissance

  7. La puissance

  8. Euclide

  9. Euclide

  10. Diviser pour régner • Principe • Scinder un problème en sous-problèmes • De tailles équivalentes • De même nature que le problème principal • Sous-traiter puis agréger les résultats • Paradigme de conception • Récursif + équilibrage • S’adapte très bien à un traitement distribué (//)

  11. Exemples notables • Tris • Tri rapide, tri fusion, … • Compilation • Analyse descendante

  12. Exo: dichotomie • EN : Binarysearchalgorithm • But : identifier une solution dans un espace de recherche • Stratégie • Diviser l’espace en deux • Décider dans quelle moitié d’espace chercher • Appliquer récursivement • Arrêter quand l’espace se réduit à un seul élément • Application • Recherche de racines de fonctions (théorème des valeurs intermédiaires) • Exercice • Concevoir un algorithme pour rechercher l’index, dans un tableau trié d’éléments d’un élément donné • (et pour retourner 0 si cet élément n’est pas trouvé)

  13. Exo: dichotomie

  14. Exo: exponentiation rapide

  15. Exo: exponentiation rapide

  16. A retenir • La version itérative est un peu plus performante que la version récursive d’un même algorithme • Concevoir suivant le paradigme récursif du diviser pour régner produira généralement un algorithme radicalement plus performant que celui pensé suivant un paradigme itératif

More Related