Presentation 2 1
Presentation 2 1
Presentation 2 1
Mirrane Achraf
septembre 2022
1 Introduction
6 la complexité spatiale
Introduction
Complexité temporelle
La théorie de la complexité algorithmique étudie les questions
concernant l’efficacité des algorithmes.
Dans ce cours, on s’intéressera uniquement à l’efficacité temporelle des
algorithmes. La mesure usuelle pour l’efficacité temporelle est la
rapidité d’un algorithme, c’est-‘a-dire le temps que va prendre un
algorithme pour produire son résultat.
Il s’agit de mesurer le temps d’exécution intrinsèque d’un algorithme
(qui ne dépend que de l’algorithme et pas de son environnement.
Définition
On appelle complexité d’un algorithme le nombre asymptotique
d’opérations de base qu’il doit effectuer en fonction de la taille de
l’entrée. Cette complexité est indépendante de l’environnement où
s’exécute l’algorithme.
Remarque
Dans ce cours, on s’intéressera le plus souvent à la recherche d’une
estimation par excès du cas le plus défavorable (complexité dans le
pire des cas).
étape initiale
Instructions élémentaires
Règles de calcul
Règles de calcul
Dans un programme purement séquentiel, les boucles sont disjointes
ou emboîtées : il n’y a pas de récursivité. Dans ce cas, les temps
d’exécution s’additionnent. Ainsi
• dans le cas d’une alternative : si A alors B sinon C :
Ordre de grandeur
Proposition
Réflexivité :
• f (n) = O(f (n))
• f (n) = Ω(f (n))
• f (n) = Θ(f (n))
Transitivité :
• f (n) = O(g(n)) et g(n) = O(h(n)) =⇒ f (n) = O(h(n))
• f (n) = Ω(g(n)) et g(n) = Ω(h(n)) =⇒ f (n) = Ω(h(n))
• f (n) = Θ(g(n)) et g(n) = Θ(h(n)) =⇒ f (n) = Θ(h(n))
Symétrie :
• f (n) = Θ(g(n)) ⇐⇒ g(n) = Θ(f (n))
(Symétrie transposée :
• f (n) = O(g(n)) ⇐⇒ g(n) = Ω(f (n))
1 + 9 × (1 + 1 + 2 + 3 + · · · + (n − 1))
9n(n − 1)
= 10 +
2
1
= (9n2 − 9n + 20).
2