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

III. Récursivité

  • Upload
    gale

  • View
    38

  • Download
    1

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: III. Récursivité

1

Principe et exemplesLe paradigme « divide & conquer »

III. Récursivité

Page 2: III. Récursivité

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

Page 3: III. Récursivité

3

Exemples

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

Page 4: III. Récursivité

4

La factorielle

1 si 0

!1 ! si 0

nn

n n n

Récursivité Exemples Factorielle Récursif

Page 5: III. Récursivité

5

La factorielle

1 si 0!

1 si 0

nn

n n

Page 6: III. Récursivité

6

La puissance

1

1 si 0

si 0n

n

na

na a

Page 7: III. Récursivité

7

La puissance

1 si 0

si 0n

n

na a a n

Page 8: III. Récursivité

8

Euclide

si 0

si 0ab

a ba b

b b

Page 9: III. Récursivité

9

Euclide

Page 10: III. Récursivité

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é (//)

Page 11: III. Récursivité

11

Exemples notables

Tris Tri rapide, tri fusion, …

Compilation Analyse descendante

Page 12: III. Récursivité

12

Exo: dichotomie

EN : Binary search algorithm 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é)

Page 13: III. Récursivité

13

Exo: dichotomie

Page 14: III. Récursivité

14

Exo: exponentiation rapide

1

1 si 0

si 0n

n

na

na a

2

1

2

1 si 0

si 0 et 1 2

si 0 et 0 2n

n n

n

a a a n n

a n n

Page 15: III. Récursivité

15

Exo: exponentiation rapide

Page 16: III. Récursivité

16

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

A retenir