La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Les algorithmes: complexité et notation asymptotique.

Présentations similaires


Présentation au sujet: "1 Les algorithmes: complexité et notation asymptotique."— Transcription de la présentation:

1 1 Les algorithmes: complexité et notation asymptotique

2 2 Analyse d'algorithmes Notation O( ) Comparer deux algorithmes Soient deux algorithmes A1 et A2 Base de comparaison Mesure indépendante de l'implémentation : TAILLE D'UN PROBLÈME (n) Temps d'exécution d'un algorithme = fonction(taille du problème) i.e. f(n) Exemples : Taille d'une liste (recherche d'un élément dans une liste) Nombre de nœuds d'un arbre (impression d'un arbre) Taille d'un tableau (tri)

3 3 Analyse d'algorithmes Notation O( )

4 4 Analyse d'algorithmes Notation O( )

5 5 Analyse d'algorithmes Notation O( ) Exemple: évaluer le temps d exécution dalgorithme suivant: void TriSelection(int tab[MAXTAB], int n) { int PositionMin, temp,i,j; for (i = n-1; i > 0; i--) { PositionMin = i; for (j = 0; j < i; j++) { if (tab[j] < tab[PositionMin]) { PositionMin = j; } temp = tab[i]; tab[i] = tab[PositionMin]; tab[PositionMin] = temp; } Boucle externe Boucle interne

6 6 Analyse d'algorithmes Notation O( ) Exemple (suite) for (i = n-1; i>0; i--) { Coût b1 /* PositionMin = i */ Coût i*a; /* pour exécuter la boucle interne*/ Coût b2; /* pour l'échange de tab[i] et tab[PositionMin] */ } Boucle externe

7 7 Analyse d'algorithmes Notation O( ) Exemple (suite) b=b1 +b2 n-1 S = (a i + b) i=1 (n-1)n S = a + (n-1)b 2 a a S = n 2 + (b )n - b 2 2 Le programme est O(n2)

8 8 Analyse d'algorithmes Notation O( ) Définition du O( ) Nous dirons que f(n) est O(g(n)) s'il existe deux constantes positives K et n0 tel que |f(n)| n0 Conclusion : Évaluer le coût d'un algorithme = Rechercher la fonction g(n) qui est la plus proche au dessus ou égale a f(n)

9 9 Analyse d'algorithmes La recherche séquentielle A.Données pas triées recherche(3) = 1 comparaison recherche(10) = 11 comparaisons recherche(12) = 7 comparaisons recherche(13) = 11 comparaisons meilleur cas = O(1) pire cas = O(n) en moyenne = O(n/2) absences = O(n)

10 10 Analyse d'algorithmes La recherche séquentielle B.Données triées recherche(1) = 1 comparaison recherche(14) = 11 comparaisons recherche(8) = 6 comparaisons recherche(13) = 11 comparaisons meilleur cas = O(1) pire cas = O(n) en moyenne = O(n/2) absences = O(n/2)

11 11

12 12

13 13 Analyse d'algorithmes La recherche binaire implantation en tableau = accès direct à nimporte quel élément en regardant tout de suite au milieu, on peut éliminer la moitié des données

14 14 Analyse d'algorithmes La recherche binaire: 10? n 5 n/2 2 n/4 1 n/8

15 15 Analyse d'algorithmes Algorithme récursif récursion ? conditions darrêt ? convergence ?

16 16 Analyse d'algorithmes Algorithme récursif - récursion X Є tab[debut..fin] si x = tab[milieu] (condition darrêt) si x < tab[milieu] et x Є tab[debut..milieu-1] si x > tab[milieu] et x Є tab[milieu+1..fin]

17 17 Analyse d'algorithmes Algorithme récursif - conditions darrêt X tab[debut..fin] si debut > fin X Є tab[debut..fin] si x = tab[milieu]

18 18 Analyse d'algorithmes Algorithme récursif - convergence

19 19 Analyse d'algorithmes Algorithme récursif int rechercheBinRec(int tab[ ], int val, int debut, int fin) {int milieu; if (debut > fin) return -1; else { milieu= (debut + fin)/2; if( val == tab[milieu]) return milieu; else { if( val < tab[milieu]) return(rechercheBinRec(tab,val,debut, milieu-1)); else return(rechercheBinRec(tab,val,milieu+1,fin)); }

20 20 Analyse d'algorithmes Algorithme récursif Recherche séquentielle (données triées ) Données présentes: O(n/2) Données absentes: O(n/2) Recherche binaire (données triées) Données présentes: O(log n) Données absentes: O(log n)

21 21 Analyse d'algorithmes Algorithme récursif Il vaut bien mieux implanter cet algorithme de manière itérative, car la fonction se rappelle jusqu'à trouver la position désirée, puis seulement on effectue les dépilages, alors que l'on n'a plus besoin des états intermédiaires qui ont été mémorisés par la récursivité puisque le problème est résolu.


Télécharger ppt "1 Les algorithmes: complexité et notation asymptotique."

Présentations similaires


Annonces Google