war ich die folgende Frage in meinem Test gegeben:Ist f (n) = 1000n + 4500lgn + 54n O (n)?
Ist f (n) = 1000n + 4500lgn + 54n O (n)?
ich diese Frage zu beantworten, indem die folgende Definition Anwendung:
Definition von O (n), die es sein, dass für eine Funktion f (n) müssen zwei positive Konstanten sind, C und K, so dass c> 0, k> 0, n> = k und 0 < = f (n) < = cn. Wenn wir zeigen können, dass die Konstanten c und k existieren, dann ist die Funktion O (n) (und wenn diese Konstanten nicht existieren, dann ist die Funktion tatsächlich größer als O (n)).
Lösung:
0 ≤ 1000N + 4500lgn + 54n ≤ cn
0 ≤ 4000 + 9000 + 216 ≤ 4c, wenn k = 4
0 ≤ 3304 ≤ c
0 ≤ 8000 + 13500 + 432 ≤ 8n wenn n = 8> k
0 ≤ 21932 ≤ 8n
0 ≤ 2741.5 ≤ n (letztes mal c = 3304 aber jetzt ist es 2741.5 .... wie n zunimmt, c ist nicht konstant!)
Fazit:
Diese Funktion ist nicht O (n) - wir können die konstanten Werte c und k nicht finden, weil sie einfach nicht existieren.
Ist meine Lösung korrekt?
Ich nehme an "lgn" bedeutet log (n)? – Siguza
Ja, es ist Log-basiert 2 – loveTrumpsHate
Ich stimme, um diese Frage als Off-Thema zu schließen, weil es geeigneter sein kann auf [CS.SE] (http://cs.stackexchange.com/) – Jules