0

J'ai 2 fonctions, C (n) et A (n)ne peut pas définir le taux de croissance pour

enter image description here

Je ne sais pas pourquoi A (n) est plus lent que C (n) parce que un taux de croissance plus élevé signifie un temps d'exécution plus lent. De mon point de vue, ils ont tous les deux racine sur numérateur. Cependant, A (n) est divisé par logn, ce qui signifie qu'il doit être inférieur à la racine n. Donc tout A (n) devient plus rapide que C (n) puisque C (n) a toujours la racine n (même si c'est n^1/3 mais a toujours la racine) et n'est divisée par rien. Y a-t-il un moyen très simple de définir l'ordre du taux de croissance?

Merci beaucoup si vous pouvez expliquer pourquoi A (n) est plus lent que C (n).

+1

* "Je ne sais pas pourquoi A (n) est plus lent que C (n) car un taux de croissance plus élevé signifie un temps d'exécution plus lent." * - Pas nécessairement. Supposons que la complexité de A (n) soit 1000000 * n et que la complexité de B (n) soit n^3. A (n) est borné, mais il a une très grande constante. [B (n) surpassera A (n) pour n <1000] (https://www.symbolab.com/solver/equation-calculator/1000000n%20%3C%3D%20n%5E%7B3%7D). Le point à retenir est, si vous savez quelque chose sur votre jeu de données, vous pouvez sélectionner un algorithme asymptotiquement plus lent et encore profiter de meilleures performances dans certains cas. – jww

+0

Je vote pour clore cette question hors-sujet parce que le problème sous-jacent concerne [math.se]. – Dukeling

+0

Ou peut-être que c'est juste une copie de [Qu'est-ce qu'une explication en anglais simple de la notation "Big O"?] (Https://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of- big-o-notation) (Big O? Big Theta? Assez proche). Ou c'est probablement une combinaison de hors-sujet et d'un doublon. – Dukeling

Répondre

0

Les deux C(n) et A(n) ont des racines dans le numérateur, mais ce sont des racines différentes. En C(n) c'est racine de cube et en A(n) c'est racine carrée. Une autre façon de les écrire serait:

C(n) = Θ(n^(1/3)) 

et

A(n) = Θ(n^(1/2)/some-log-term) 

Maintenant, il est clair que 1/3 < 1/2 et donc avec n assez grand n^(1/3) est beaucoup moins que n^(1/2) (et n^(1/2)/some-log-term aussi). * A(n) est arbitrairement plus grand ce qui signifie C(n) << A(n)