Complexité algorithmique

Big-O, cas pire

Se connecter pour contribuerPublié le · Dernière mise à jour le

Complexité algorithmique

Pourquoi mesurer ?

Deux algorithmes peuvent résoudre le même problème avec des temps de calcul radicalement différents. La complexité mesure la croissance du nombre d'opérations en fonction de la taille de l'entrée nn, indépendamment du matériel.

Notation grand O

On écrit T(n)=O(f(n))T(n) = O(f(n)) quand il existe c>0c > 0 et n0n_0 tels que T(n)cf(n)T(n) \le c \cdot f(n) pour tout nn0n \ge n_0. On ignore les constantes et les termes négligeables : 3n2+5n+7=O(n2)3n^2 + 5n + 7 = O(n^2).

On distingue :

  • pire cas (worst case) : majorant garanti,
  • meilleur cas (best case) : minorant,
  • cas moyen : moyenne pondérée selon une distribution d'entrées.

Classes usuelles

NotationNomExemple
O(1)O(1)constanteaccès tableau
O(logn)O(\log n)logarithmiquerecherche dichotomique
O(n)O(n)linéairerecherche séquentielle
O(nlogn)O(n \log n)quasi-linéairetri fusion
O(n2)O(n^2)quadratiquetri par sélection
O(n3)O(n^3)cubiqueproduit matriciel naïf
O(2n)O(2^n)exponentiellerecherche exhaustive
O(n!)O(n!)factorielleénumération de permutations

Mesurer en pratique

On compte les opérations « coûteuses » (comparaisons, affectations, accès mémoire). Pour une boucle imbriquée :

for i in range(n):       # n itérations
    for j in range(n):   # n itérations
        T[i][j] = 0      # opération constante

Total : n×n=n2n \times n = n^2 opérations, donc O(n2)O(n^2).

Complexité spatiale

Mémoire supplémentaire utilisée. Un tri en place est O(1)O(1) en espace, un tri fusion est O(n)O(n).

Décidabilité et complexité

Tous les problèmes ne sont pas résolubles : le problème de l'arrêt est indécidable. Parmi les problèmes décidables, ceux dont on ne connaît aucun algorithme polynomial sont dits « difficiles » (classe NP-difficile : voyageur de commerce, sac à dos 0/1, SAT…).

Sources et références

Ce cours est rédigé par l'équipe RévisionBac à partir du programme officiel et des sources institutionnelles ci-dessous. Elles permettent de vérifier les définitions, les chiffres et les normes citées.

  1. 1.Programmes et ressources du lycée général et technologiqueÉduscol — Ministère de l'Éducation nationale
  2. 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat)education.gouv.fr
  3. 3.Ressources et programme de NSIÉduscol
  4. 4.Documentation du langage PythonPython Software Foundation
  5. 5.Protection des données et RGPDCNIL
  6. 6.Séries statistiques et études économiquesInsee

Contenu vérifié et mis à jour le 08/08/2026. Les liens renvoient vers les sites officiels des éditeurs cités.

Historique éditorial

Ce chapitre est rédigé et relu par l'équipe RévisionBac, puis enrichi par les contributions validées.

  1. Dernière mise à jour du cours (relecture et enrichissement)
  2. Première publication de la fiche de cours