web-dev-qa-db-fra.com

En quoi O (n log n) est-il différent de O (log n)?

En recherchant la grande notation O, je comprends le concept de O (log n) en tant que recherche binaire et de O (n log n) en tant que tri rapide.

Quelqu'un peut-il décrire en termes simples comment la principale différence entre à l'exécution se situe entre ces deux? et pourquoi c'est le cas?

ils semblent intuitivement liés de la même manière

18
Adam Weitzman

Fondamentalement: un facteur de N.
Une recherche binaire ne touche qu'un petit nombre d'éléments. S'il y a un milliard d'éléments, la recherche binaire n'en touche qu'environ 30.
Un tri rapide touche chaque élément, un petit nombre de fois. S'il y a un milliard d'éléments, le tri rapide touche tous, environ 30 fois: environ 30 milliards de contacts.

26
Mooing Duck

enter image description here

Voyez comment Log(n) est plate (pas au sens propre mais au sens figuré, par rapport à d'autres fonctions), tandis que nLog(n) a franchi 600 pour une valeur de n = 100. Elles sont donc différentes.

24
displayName