1. Définition
Notation mathématique qui décrit la limite supérieure du temps d'exécution ou l'utilisation d'un espace d'algorithme. Il est désigné comme ou (f (n)) , où f (n) est une fonction qui représente le temps ou l'espace en fonction de la taille d'entrée n .
2. Objectif
Comparaison des algorithmes - : vous permet de comparer différents algorithmes et de choisir le plus efficace pour un problème donné.
évolutivité
: il aide à prédire comment un algorithme se comportera lorsque la quantité de données augmentera.
-
3. Analyse de la complexité
Pire cas
: fait référence au scénario où l'algorithme prend plus de temps ou utilise plus de ressources. Big ou fait généralement référence à ce cas.
- meilleur cas et cas moyen : Bien qu'ils soient importants, ils sont utilisés moins fréquemment pour le Big O.
-
4. Espace Vs. Temps
Complexité temporaire
: il fait référence au temps qu'il faut pour qu'un algorithme s'exécute.
Complexité spatiale - : fait référence à la quantité de mémoire supplémentaire que vous utilisez. Vous pouvez avoir des notations telles que ou (1) (espace constant) ou
(espace linéaire).
-
Exemple:
Importer TimeIt
Importer Matplotlib.pyplot en tant que plt
Importer CPROFILE
# O (1)
Def constant_time_operation ():
retour 42
# O (log n)
Def logarithmic_time_opération (n):
Comte = 0
Tandis que n> 1:
N // = 2
Compter = 1
Return Count
# Ou (n)
def linear_time_opération (n):
Total = 0
pour i à portée (n):
Total = i
Rendement total
# O (n log n)
def linear_logarithmic_time_opération (n):
Si n
Merci d'avoir lu !!
Apóy moi réagissant et opinion.