formations/algo/AlgoApprofondie/cours/complexite.txt

52 lines
1.3 KiB
Plaintext
Raw Normal View History

2017-10-16 15:35:34 +02:00
Notion de complexité d'un algorithme
====================================
Définition
2017-10-16 15:35:34 +02:00
-----------
Lanalyse de la complexité dun algorithme consiste à évaluer les ressources
2017-10-16 15:35:34 +02:00
consommées par lalgorithme lors de lexécution
deux critères dévaluation
- le coût en temps (nombre dopérations)
- le coût en espace, (quantité de mémoire)
principes de base
-----------------
Caractériser la quantité de ressources consommées en fonction de la
taille des données sur lesquelles lalgorithme est appliqué.
2017-10-16 15:35:34 +02:00
Evaluer le coût exact est difficile, on exprimera donc seulement un
ordre de grandeur
définition mathématique
-----------------------
- si f est la fonction caractérisant exactement le coût dun algorithme
2017-10-16 15:35:34 +02:00
- et n la taille des données
- on s'intéresse à la façon dont croît f(n) lorsque n croît
- on va montrer que f (n) ne croît pas plus vite quune autre fonction g(n)
2017-10-16 15:35:34 +02:00
Du point de vue mathématique, on dit que la fonction f est dominée
asymptotiquement par la fonction g ce qui se note f= O(g)
::
f = O(g) ssi il existe k, il existe n 0 , pour tout n, n > n 0 implique
f(n) inférieur ou egal k.g (n)
2017-10-16 15:35:34 +02:00
exemples
---------
- O(n) : progression linéaire
- O(n^2) : progression quadratique
- O(n^p) : progression polynomiale
- O(p^n ) : progression exponentielle
- O(log(n)): progression logarithmique