51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
|
Notion de complexité d'un algorithme
|
|||
|
====================================
|
|||
|
|
|||
|
définition
|
|||
|
-----------
|
|||
|
|
|||
|
l’analyse de la complexité d’un algorithme consiste à évaluer les ressources
|
|||
|
consommées par l’algorithme lors de l’exécution
|
|||
|
|
|||
|
deux critères d’évaluation
|
|||
|
|
|||
|
- le coût en temps (nombre d’opé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 l’algorithme 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 d’un algorithme
|
|||
|
- 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 qu’une 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
|