formations/algo/AlgoApprofondie/cours/complexite.txt

51 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
-----------
lanalyse de la complexité dun algorithme consiste à évaluer les ressources
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é.
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
- et n la taille des données
- on sinté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)
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 ∃k, ∃n 0 , ∀n, n > n 0 ⇒ f (n) ≤ k.g (n)
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