Complexité
1. Définition de la complexité
Les algorithmes se caractérisent par la taille des données qu'ils manipulent et l'ensemble
des traitements qu'ils opèrent sur ces données.
ex de taille :
•nombres : le nombre lui même ou le nombre de bits (nb de chiffre en base 2)
•liste, tableau, matrice, . . . : La nombre d'éléments
•arbres : Nb de noeuds
•graphes : Nb de noeud et/ou nb d'arêtes
ex de traitement :
•affectations
•allocation mémoire (pour l'espace)
•comparaisons
•arithmétique ,. . .
Pour un même problème, les algorithmes qui le résolve se classent selon leur complexité.
Définition (complexité) : La complexité d'un algorithme est la mesure du nombre d'opérations
fondamentales 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.
Soit Dn l'ensemble des données de taille n et T(d) le coût de l'algorithme sur la donnée d.
Complexité au meilleur : Tmin(n) =
: plus petit nombre d'opérations
qu'aura à exécuter l'algorithme sur un jeu de données de taille n. C'est la borne inférieure
de la complexité de l'algorithme sur un jeu de données de taille n.
Complexité au pire : Tmax(n) =
: plus grand nombre d'opérations qu'aura à
exécuter l'algorithme sur un jeu de données de taille n.
Complexité en moyenne : Tmoy(n) =
: moyenne des complexités pour les
données de taille n avec p(d) la probabilité de voir apparaître la donnée d.
Attention : les complexités au meilleur et au pire ne sont que des indications, elles
montrent les limites au dessus et en deça desquelles l'algorithme n'ira pas. La complexité
en moyenne montre le comportement général de l'algorithme et ne donne une bonne