Vous vous êtes déjà demandé pourquoi un programme que vous avez développé mettait tant de temps à s'exécuter ? Apprenez à optimiser votre code grâce à la notation Big-O, un outil essentiel pour évaluer sa performance réelle et l'améliorer significativement.
La notation Big-O permet d'évaluer le temps d'exécution d'un algorithme en comptant le nombre d'opérations élémentaires nécessaires. Contrairement au chronométrage réel, qui est imprécis pour de petites variations, elle révèle les inefficacités qui s'accumulent dans les grands programmes.
Elle mesure l'efficacité en termes d'étapes algorithmiques, facilitant la comparaison objective entre algorithmes et l'optimisation de votre code.
Considérons deux fonctions Python comptant le nombre de chaussettes individuelles à partir du nombre de paires. Le langage n'impacte pas le comptage des étapes.
Algorithme 1 :
def sock_counter(number_of_pairs):
individual_socks = 0
for x in range(number_of_pairs):
individual_socks += 2
return individual_socksAlgorithme 2 :
def sock_counter(number_of_pairs):
return number_of_pairs * 2Cet exemple simple montre qu'il est évident que l'algorithme 2 est plus efficace. Examinons les étapes en détail.
EN RELATION : Qu'est-ce qu'une fonction en programmation ?
L'algorithme 1 nécessite :
individual_socks à 0.i < number_of_pairs.individual_socks.n-1 fois (où n = number_of_pairs).Nombre total d'étapes : 4n + 2 (4 étapes par itération × n + 2 étapes fixes).
4n + 2L'algorithme 2 ne requiert qu'1 étape : une multiplication.
1En pratique, on simplifie en ne retenant que le terme dominant pour décrire la complexité asymptotique.
Algorithme 2 : O(1) (constante).
O(1)Algorithme 1 : O(n) (linéaire).
O(n)
La performance croît proportionnellement à n, formant une droite.
Pour une recherche dans un tableau 2D :
def search_for_value(target_value, searched_array):
found = False
for x in searched_array:
for y in x:
if y == target_value:
found = True
break
return foundÉtapes : n × n = n², complexité O(n²).

O(n²)CONNEXION : Outils utiles pour vérifier, nettoyer et optimiser les fichiers CSS
Exemple : log₂(8) = 3, car 2³ = 8.
log₂(8) = 3
Dans une recherche binaire triée :
Complexité : O(log n), car chaque étape divise l'espace de recherche par 2.
O(log n)
La notation Big-O communique rapidement l'efficacité d'un algorithme, aidant à choisir entre options, y compris celles de bibliothèques tierces. Pour les débutants, O(n) suffit souvent ; pour les projets complexes, maîtriser les complexités supérieures est crucial pour scaler efficacement.