Introduction à la complexité

I. Définition

La complexité d'un algorithme désigne l'ordre de grandeur de la fonction qui associe à la taille d'un problème le nombre de ressources

d'un type donné considérées.

On étudie en général 2 types de complexité :

Par ailleurs, lorsqu'on étudie une complexité,on peut s'intéresser à :

En effet, suivant les données, un même algorithme peut être plus ou moins efficace.

II. Pourquoi étudier la complexité

Sur des problèmes "petits", la complexité est rarement un critère fondamental. Elle devient critique dans 2 cas :

C'est surtout d'ailleurs ce deuxième cas qui est problématique. L'augmentation de la puissance de calcul ne change rien à la complexité. Cela permet seulement de reculer un peu les limites de l'acceptable. Cela est d'autant plus vrai que la mise à disposition d'un nombre croissant de données grâce à Internet augmente le nombre de cas d'utilisation d'algorithmes sur de gros volumes de données.