08/02/2014
1
CHAPITRE 4
Complexité des algorithmes
La O-Notation
(Partie 1)
1. Introduction
2. Efficacité en temps et en espace
3. Notation de Landau (O-Notation)
4. Classes de complexité
5. Règles de calcul de la complexité d’un
algorithme itératif
1 Chapitre 4 - O-Notation (Partie1)
Il existe souvent plusieurs algorithmes permettant de
résoudre un même problème (exemple les algorithmes de
tri). Le choix du meilleur algorithme implique une analyse
de ses performances.
En général, le critère le plus important est celui du temps
nécessaire à son exécution. Celui-ci dépend des facteurs
suivants :
• Les données entrant dans le programme,
•La qualité du code généré par le compilateur pour la
création du programme objet,
•La nature et la vitesse d’exécution des instructions du
microprocesseur utilisé pour l’exécution du programme,
• La complexité algorithmique du programme.
1. Introduction
2 Chapitre 4 - O-Notation (Partie1)
Différents algorithmes ont des coûts différents en termes
de :
* temps d’exécution (nombre d’opérations effectuées
par l’algorithme)
* taille mémoire (taille nécessaire pour stocker les
différentes structures de données pour l’exécution)
Ces deux concepts sont appelés la:
complexité en temps et en espace de l’algorithme.
2. Efficacité en temps et en espace
3 Chapitre 4 - O-Notation (Partie1)
La complexité (temporelle) d’un algorithme est la mesure du
nombre d’opérations fondamentales (affectations,
comparaisons, opérations arithmétiques) qu’il effectue sur
un jeu de données.
La complexité est exprimée comme une fonction de la taille
du jeu de données traitées. Ceci permet en particulier de
comparer deux algorithmes traitant le même calcul.
En d’autres termes, il permet de déterminer si un algorithme
A et meilleur qu’un algorithme B.
4
2. Efficacité en temps et en espace
Chapitre 4 - O-Notation (Partie1)