Lorsque les articles/questions indiquent que le temps d'exécution Big O de l'algorithme est O(LogN).
Par exemple, Quicksort a un temps d'exécution Big O de O (LogN) où il est Log base 10 mais la Hauteur de l'arborescence binaire est O (LogN + 1) où il est Log base 2
Question
1) Je suis confus quant à savoir s'il s'agit de Log base 10 ou Log base 2 car différents articles utilisent des bases différentes pour leur logarithme.
2) Cela fait-il une différence si sa base de journal 2 ou sa base de journal 10 ??
3) Pouvons-nous supposer que cela signifie Log base 10 lorsque nous voyons O (LogN) ???
Je pense que peu importe quelle est la base du journal car la complexité relative est la même quelle que soit la base utilisée.
Vous pouvez donc le considérer comme O (log2X) = O (logdixX)
Mentionner également que les logarithmes sont liés par une constante.
Alors
Donc, la plupart du temps, nous ignorons généralement les constantes dans l'analyse de la complexité, et donc nous disons que la base n'a pas d'importance.
Vous pouvez également constater que la base est considérée comme étant 2 la plupart du temps, comme dans Merge Sort . L'arbre a une hauteur de log₂ n
, car le nœud a deux branches.
1) Je suis confus quant à savoir s'il s'agit de Log base 10 ou Log base 2 car différents articles utilisent des bases différentes pour leur logarithme.
Ainsi, comme expliqué ci-dessus, ce changement de base n'a pas d'importance.
2) Cela fait-il une différence si sa base de journal 2 ou sa base de journal 10 ??
Non ça n'a pas d'importance.
3) Pouvons-nous supposer que cela signifie Log base 10 lorsque nous voyons O (LogN) ???
Oui, vous pouvez supposer que si vous connaissez la règle de conversion de base.
log₁₀ ( x ) = log₂ ( x )/log₂ (10) pour tous x . 1/log₂ (10) est un multiplicateur constant et peut être omis de l'analyse asymptotique.
Plus généralement, la base de tout logarithme peut être modifiée de a à b (les deux constantes wrt. n ) en divisant par logₐ ( b ), vous pouvez donc basculer librement entre des bases de log supérieures à un: O (log₁₀ ( n )) est identique à O (log₂ ( n )), O (ln ( n )), etc.
Un exemple de conséquence de ceci est que B-arbres ne bat pas les arbres de recherche binaires équilibrés asymptotiquement, même s'ils donnent des bases logarithmiques plus élevées dans l'analyse. Ils ont juste de meilleures constantes.
En notation Big O, O(log(n))
est la même pour toutes les bases. Cela est dû à la conversion de base du logarithme:
log2(n) = log10(n)/log10(2)
1/log10(2)
n'est qu'un facteur multiplicateur constant, donc O(log2(n))
est identique à O(log10(n))