Comme mentionné dans la réponse à la question liée, un moyen courant pour un algorithme d'avoir une complexité temporelle O(log n) est que cet algorithme fonctionne en réduisant à plusieurs reprises la taille de l'entrée par un facteur constant à chaque itération.
Quelle est la signification de log n ?
O(log N) signifie essentiellement le temps augmente de façon linéaire tandis que le n augmente de façon exponentielle. Donc s'il faut 1 seconde pour calculer 10 éléments, il faudra 2 secondes pour calculer 100 éléments, 3 secondes pour calculer 1000 éléments, et ainsi de suite. C'est O (log n) lorsque nous divisons et conquérons le type d'algorithmes, par exemple la recherche binaire.
Qu'est-ce que O et log n ?
Pour l'entrée de taille n, un algorithme de O(n) effectuera des étapes proportionnelles à n, tandis qu'un autre algorithme de O(log(n)) effectuera des étapes environ log(n). Il est clair que log(n) est plus petit que n donc l'algorithme de complexité O(log(n)) est meilleur.
Comment calculer le log n ?
L'idée est qu'un algorithme est O(log n) si au lieu de faire défiler une structure 1 par 1, vous divisez la structure en deux encore et encore et faites un nombre constant d'opérations pour chaque division. Les algorithmes de recherche où l'espace de réponse continue d'être divisé sont O(log n).
Qu'est-ce que log n Square ?
Log ^2 (
) signifie qu'il est proportionnel au log du log pour un problème de taille
. Log(
)^ 2 signifie qu'il estproportionnel au carré du log.