Aller au contenu
OneKitly

La notation grand O pour débutants : O(1), O(n), O(n au carré) et O(log n) expliqués

Publié le 11/03/2026 · 4 min de lecture · Outils pour développeurs

Daniel Okonkwo

Daniel OkonkwoDéveloppeur front-end et rédacteur Tech chez OneKitly

Performance web · Formats de fichiers

Vérifié à partir de 2 sources

Voir le profil
En bref

La notation grand O décrit la croissance du temps d'exécution ou de la mémoire d'un algorithme quand la taille d'entrée n grandit, en ignorant les facteurs constants et les petits termes. O(1) signifie que le travail reste identique quelle que soit la taille de l'entrée ; O(log n) croît très lentement, doubler l'entrée n'ajoute qu'une étape ; O(n) croît au rythme de l'entrée ; et O(n au carré) croît avec le carré, si bien que doubler l'entrée quadruple le travail. C'est important car à grand n ces écarts décident si un programme finit en millisecondes ou en heures.

Le grand O décrit la croissance du travail d'un algorithme quand l'entrée grandit. Voici ce que signifient O(1), O(n), O(n au carré) et O(log n) et pourquoi l'écart compte.

La croissance, pas le chronomètre

Le grand O ne parle pas du nombre de secondes que prend une tâche sur ton portable. Il décrit comment le travail évolue quand l'entrée grandit. Deux algorithmes peuvent tous deux être en O(n), et pourtant l'un s'exécute deux fois plus vite sur du matériel réel grâce à un facteur constant plus petit. Le grand O jette délibérément cette constante, car à n assez grand la forme de la courbe de croissance domine tout multiplicateur fixe.

La notation ne garde aussi que le terme qui croît le plus vite. Un algorithme qui effectue 3n au carré plus 5n plus 200 opérations est simplement en O(n au carré), car dès que n est grand le terme carré écrase le reste. Voilà pourquoi le grand O est une loupe grossière mais puissante : il te donne la classe de comportement, exactement ce qu'il faut pour décider si une solution survivra à cent fois plus de données.

Les quatre classes courantes

O(1) est le temps constant : lire un élément de tableau par index ou vérifier une clé de table de hachage demande le même effort que la collection contienne dix éléments ou dix millions. O(log n) est logarithmique : la recherche binaire divise par deux les données restantes à chaque étape, si bien que chercher dans une liste triée d'un milliard d'éléments ne prend qu'environ trente comparaisons. La division par deux est l'image miroir du doublement observé lors de la conversion de nombres entre bases.

O(n) est linéaire : additionner chaque élément ou parcourir une liste une fois touche chaque élément exactement une fois, si bien que le travail monte en ligne droite avec n. O(n au carré) est quadratique et provient généralement de boucles imbriquées, comme comparer chaque paire d'éléments. À n de 1 000 cela fait un million d'opérations ; à n de 1 000 000 cela fait mille milliards, et c'est là qu'un code quadratique naïf devient discrètement inutilisable.

Pourquoi la classe choisie compte

La complexité sépare un prototype qui marche sur ton fichier de test d'un logiciel qui survit aux données de production. Trier avec un algorithme en O(n au carré) paraît instantané sur cent lignes et gèle sur un million. Passer à un tri en O(n log n) garde la même tâche sous la seconde. L'algorithme que tu choisis, et non la vitesse de la machine, fixe le plafond de données que tu peux traiter.

Cela dit, le grand O est asymptotique : il décrit le comportement quand n tend vers l'infini. Pour de petites entrées, une routine plus simple en O(n au carré) peut battre une routine sophistiquée en O(n log n) au lourd surcoût. La règle pratique est de connaître la classe de chaque opération centrale, puis d'optimiser les parties qui verront vraiment un grand n, plutôt que de courir après les constantes d'un code qui ne traite que de minuscules entrées.

Convertisseur de basesConvertis un nombre entre les 35 bases, sans arrondi, complément à deux inclus.Essayer l'outil

Questions fréquentes

Un grand O plus bas est-il toujours plus rapide ?
Pas pour de petites entrées. Le grand O ignore les facteurs constants, si bien qu'une méthode en O(n log n) à lourde mise en place peut perdre face à une simple boucle en O(n au carré) quand n est minuscule. La classe plus basse l'emporte dès que l'entrée est assez grande.
Quelle est la différence entre O(log n) et O(n log n) ?
O(log n) fait une seule passe logarithmique, comme une recherche binaire unique. O(n log n) effectue une quantité logarithmique de travail pour chacun des n éléments, ce qui correspond au coût des algorithmes de tri efficaces comme le tri fusion.
Le grand O couvre-t-il aussi la mémoire ?
Oui. La même notation décrit la complexité en espace, la mémoire supplémentaire qu'un algorithme requiert quand n grandit. Un tri en place peut utiliser O(1) d'espace supplémentaire, tandis qu'un tri qui copie les données utilise O(n).
Pourquoi ignore-t-on les constantes et les termes inférieurs ?
Parce qu'à grand n le terme qui croît le plus vite domine tout le reste, et les constantes dépendent d'un matériel que tu ne contrôles pas. Les supprimer donne une comparaison portable de la façon dont les algorithmes évoluent, indépendante de toute machine.

Articles qui pourraient t'intéresser

Tous les guides
ExplicationQu'est-ce que l'UTF-8 et l'Unicode ? Points de code, encodage en octets et pourquoi l'UTF-8 s'est imposéUnicode attribue à chaque caractère un point de code ; l'UTF-8 encode ces points de code en un à quatre octets. Voici son fonctionnement et pourquoi il a battu les alternatives.ExplicationComment fonctionnent les masques de sous-réseau : CIDR, bits réseau et hôtes utilisablesComprends comment un masque de sous-réseau divise une adresse IP en parties réseau et hôte, ce que signifie /24 et comment compter les hôtes utilisables.ExplicationL'entropie des mots de passe expliquée : bits, longueur et temps nécessaire pour les casserCe que mesure vraiment l'entropie d'un mot de passe, pourquoi la longueur prime sur la complexité, et comment les bits d'entropie deviennent un temps de cassage réaliste.TutorielComment lire le binaire et le convertir en décimal et hexadécimalDécouvre comment fonctionnent les valeurs de position binaires et convertis le binaire en décimal et hexadécimal à la main, avec des exemples clairs.TutorielCombien de temps faut-il pour téléverser un fichier ? La formule taille fois 8 divisée par le débitEstime le temps de téléversement avec une seule formule : la taille du fichier en bits divisée par ton débit montant. Découvre pourquoi l'envoi est souvent plus lent que le téléchargement et comment le surcoût affecte le résultat.ExplicationQu'est-ce que le débit binaire ? Bits par seconde, CBR ou VBRLe débit binaire est le nombre de bits qu'un flux vidéo ou audio utilise chaque seconde. Découvre comment il détermine la qualité et la taille, et la différence entre débit constant et variable.

Outils similaires

Sources

Tu as repéré une erreur dans cet article ?