J'aime cet article , en espérant que vous le trouverez utile aussi!
Citant une section de l'article:
Big Greek Letters
Big O est souvent mal utilisé. Big O ou Big Oh est en fait l'abréviation de Big Omicron. Il représente la limite supérieure de la complexité asymptotique. Donc, si un algorithme est O (n log n), il existe une constante c telle que la borne supérieure est cn log n.
Θ (n log n) (Big Theta) est plus étroitement lié que cela. Un tel algorithme signifie qu'il existe deux constantes c1 et c2 telles que c1n log n <f (n) <c2n log n.
Ω (n log n) (Big Omega) dit que l'algorithme a une borne inférieure de cn log n.
Il y en a d'autres mais ce sont les plus communs et Big O est le plus commun de tous. Une telle distinction est généralement sans importance, mais elle mérite d'être notée. La notation correcte est la notation correcte, après tout.
Qu'est-ce que Big O?
La notation Big O cherche à décrire la complexité relative d'un algorithme en réduisant le taux de croissance aux facteurs clés lorsque le facteur clé tend vers l'infini. Pour cette raison, vous entendrez souvent l'expression complexité asymptotique. Ce faisant, tous les autres facteurs sont ignorés. C'est une représentation relative de la complexité.
Qu'est-ce qui n'est pas Big O?
Big O n'est pas un test de performance d'un algorithme. Il est également théorique ou abstrait en ce qu'il tend à ignorer d'autres facteurs. La complexité de l'algorithme de tri est généralement réduite au nombre d'éléments triés comme étant le facteur clé. C'est bien, mais cela ne prend pas en compte des problèmes tels que:
Utilisation de la mémoire: un algorithme peut utiliser beaucoup plus de mémoire qu'un autre. Selon la situation, cela pourrait être tout à fait non pertinent à critique; Coût de la comparaison: Il se peut que la comparaison des éléments soit très coûteuse, ce qui changera potentiellement toute comparaison réelle entre les algorithmes; Coût des éléments en mouvement: la copie d'éléments est généralement bon marché mais ce n'est pas nécessairement le cas; etc.