Algorithmique • 1ère

Analyse de complexité simple

Complexité algorithmique
\[ O(f(n)) \]
Notation de Landau
Définition :
La complexité mesure le nombre d'opérations effectuées par un algorithme en fonction de la taille de l'entrée.
Objectif :
Comparer l'efficacité de différents algorithmes et prédire leur comportement.
Classes de complexité
Notation Nom Exemple Croissance
O(1) Constante Affectation Constante
O(log n) Logarithmique Recherche dichotomique Lente
O(n) Linéaire Recherche séquentielle Modérée
O(n²) Quadratique Boucles imbriquées Rapide
O(2ⁿ) Exponentielle Problèmes combinatoires Très rapide
Méthodes d'analyse
🔍
Compter les opérations élémentaires
📊
Identifier les structures itératives
🎯
Comparer avec des algorithmes connus
Choisir le pire cas
Exemples d'analyse
Boucle simple (O(n)) :
Pour i allant de 1 à n Faire
  Instructions  // s'exécute n fois
FinPour
// Complexité : O(n)
Boucles imbriquées (O(n²)) :
Pour i allant de 1 à n Faire
  Pour j allant de 1 à n Faire
    Instructions  // s'exécute n² fois
  FinPour
FinPour
// Complexité : O(n²)
Calcul de somme (O(n)) :
Variables somme, i : entier
somme ← 0
Pour i allant de 1 à n Faire
  somme ← somme + i
FinPour
// Complexité : O(n)
Bonnes pratiques
🔍
Identifier les opérations les plus coûteuses
📝
Simplifier les expressions complexes
🎯
Se concentrer sur le terme dominant
Considérer le pire cas possible
Erreurs fréquentes
Ne pas compter les boucles imbriquées correctement
⚠️
Oublier les conditions dans les boucles
🔄
Confondre complexité temporelle et spatiale
🎯
Ne pas simplifier les constantes
Applications de programmation Algorithmique et programmation