Explosion exponentielle pour n égal 50

Pour n = 50, O(2^n) demande environ 10^15 opérations : plus de dix jours à un milliard d'opérations par seconde.

Taille n
50
Vitesse supposée
1 000 000 000 opérations par seconde
ComplexitéOpérationsDurée
O(1)11 ns
O(log n)65,64 ns
O(n)5050 ns
O(n log n)282282,19 ns
O(n²)2 5002,5 µs
O(n³)125 000125 µs
O(2^n)1,13 × 10¹⁵13 jours

Le cas en détail

Un algorithme exponentiel double sa durée à chaque élément ajouté. Avec 50 éléments, il faut plus d'un million de milliards d'opérations. À 60 éléments, on dépasse trente ans. Aucun matériel n'y change grand-chose.

À retenir : Quand un problème paraît exiger une énumération de toutes les possibilités, cherchez une autre approche.

L'exemple chiffré

Valeurs utilisées dans ce cas (des exemples, pas des mesures) :

  • Taille des données (n) : 50
  • Opérations par seconde : 1000000000
Taille n
50
Vitesse supposée
1 000 000 000 opérations par seconde
ComplexitéOpérationsDurée
O(1)11 ns
O(log n)65,64 ns
O(n)5050 ns
O(n log n)282282,19 ns
O(n²)2 5002,5 µs
O(n³)125 000125 µs
O(2^n)1,13 × 10¹⁵13 jours

Modifiez les champs ci-dessus pour adapter le calcul à votre situation : le résultat se met à jour tout de suite.

Comment ça se calcule

Pour chaque classe de complexité, l'outil évalue la formule pour votre n (log n en base 2, n log n, n au carré, au cube, 2 puissance n) puis divise par le nombre d'opérations par seconde que vous indiquez. Ce sont des ordres de grandeur : les constantes réelles d'un programme ne sont pas prises en compte.

Les résultats sont fournis à titre indicatif, sans valeur de conseil juridique, fiscal ou financier.

Pour aller plus loin