Les algorithmes: complexit et notation asymptotique - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Les algorithmes: complexit et notation asymptotique

Description:

La recherche binaire. implantation en tableau = acc s direct n'importe quel l ment. en ... Recherche binaire (donn es tri es) Donn es pr sentes: O(log n) ... – PowerPoint PPT presentation

Number of Views:204
Avg rating:3.0/5.0
Slides: 22
Provided by: julianag7
Category:

less

Transcript and Presenter's Notes

Title: Les algorithmes: complexit et notation asymptotique


1
Les algorithmes complexité et notation
asymptotique
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 nuds d'un arbre (impression d'un
    arbre)
  • Taille d'un tableau (tri)


3
Analyse d'algorithmes
  • Notation O( )


4
Analyse d'algorithmes
  • Notation O( )


5
Analyse d'algorithmes
  • Notation O( )
  • Exemple évaluer le temps d exécution
    dalgorithme suivant


Boucle externe
void TriSelection(int tabMAXTAB, int n) int
PositionMin, temp,i,j for (i n-1 i gt 0
i--) PositionMin i for (j 0 j
lt i j) if (tabj lt
tabPositionMin) PositionMin j
temp tabi tabi
tabPositionMin tabPositionMin
temp
Boucle interne
6
Analyse d'algorithmes
  • Notation O( )
  • Exemple (suite)


Boucle externe
for (i n-1 igt0 i--) Coût b1 /
PositionMin i / Coût ia / pour exécuter
la boucle interne/ Coût b2 / pour l'échange
de tabi et tabPositionMin /
7
Analyse d'algorithmes
  • Notation O( )
  • Exemple (suite)


bb1 b2 n-1 S ? (ai b) i1
(n-1)n S a (n-1)b
2 a a S n2
(b )n - b 2 2
  • Le programme est O(n2)

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) lt K
    g(n) pour tout ngtn0
  • 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
Analyse d'algorithmes
  • La recherche séquentielle
  • 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
Analyse d'algorithmes
  • La recherche séquentielle
  • 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
(No Transcript)
12
(No Transcript)
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
Analyse d'algorithmes
  • La recherche binaire 10?


1 2 3 4 6 8 9 10
11 12 14
11 n
9 10 11 12 14
5 n/2
9 10
2 n/4
1 n/8
10
15
Analyse d'algorithmes
  • Algorithme récursif
  • récursion ?
  • conditions darrêt ?
  • convergence ?


1 2 3 4 6 8 9 10
11 12 14
16
Analyse d'algorithmes
  • Algorithme récursif - récursion
  • X ? tabdebut..fin
  • si x tabmilieu (condition darrêt)
  • si x lt tabmilieu et x ? tabdebut..milieu-1
  • si x gt tabmilieu et x ? tabmilieu1..fin


1 2 3 4 6 8 9 10
11 12 14
17
Analyse d'algorithmes
  • Algorithme récursif - conditions darrêt
  • X tabdebut..fin si debut gt fin
  • X ? tabdebut..fin si x tabmilieu


1 2 3 4 6 8 9 10
11 12 14
18
Analyse d'algorithmes
  • Algorithme récursif - convergence


1 2 3 4 6 8 9 10
11 12 14
9 10 11 12 14
9 10
10
19
Analyse d'algorithmes
  • Algorithme récursif


1 2 3 4 6 8 9 10
11 12 14
int rechercheBinRec(int tab , int val, int
debut, int fin) int milieu if (debut gt fin)
return -1 else milieu (debut fin)/2
if( val tabmilieu) return milieu
else if( val lt tabmilieu) return(rec
hercheBinRec(tab,val,debut, milieu-1)) else
return(rechercheBinRec(tab,val,milieu1,fin))

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
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.

Write a Comment
User Comments (0)
About PowerShow.com