Une machine dix fois plus rapide change-t-elle tout ?

Comparez les durées pour n = 10 000 à 10 milliards d'opérations par seconde : O(n²) reste notable.

Taille n
10 000
Vitesse supposée
10 000 000 000 opérations par seconde
ComplexitéOpérationsDurée
O(1)10,1 ns
O(log n)131,33 ns
O(n)10 0001 µs
O(n log n)132 87713,29 µs
O(n²)100 000 00010 ms
O(n³)1 000 000 000 0001 min 40 s
O(2^n)2 × 10³⁰¹⁰environ 10²⁹⁹³ ans

Le cas en détail

Un processeur plus rapide divise toutes les durées par le même facteur, mais ne change pas leur croissance. Un algorithme en n² reste quadratique : doubler les données quadruple toujours le travail. Améliorer l'algorithme rapporte plus que changer de machine.

À retenir : Avant d'acheter du matériel, cherchez d'abord à améliorer l'algorithme.

L'exemple chiffré

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

  • Taille des données (n) : 10000
  • Opérations par seconde : 10000000000
Taille n
10 000
Vitesse supposée
10 000 000 000 opérations par seconde
ComplexitéOpérationsDurée
O(1)10,1 ns
O(log n)131,33 ns
O(n)10 0001 µs
O(n log n)132 87713,29 µs
O(n²)100 000 00010 ms
O(n³)1 000 000 000 0001 min 40 s
O(2^n)2 × 10³⁰¹⁰environ 10²⁹⁹³ ans

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