Wie kann f (n)
-
29-09-2020 - |
Frage
Ich habe gelesen Dieses Tutorial in der Zeit Komplexität , und ich bin ein bisschen verwirrt von seiner Erklärung des großen
$ o (g (n))= $ { $ f (n) $ : dort existieren positive Konstanten
$ C $ und $ n_0 $ so, dass $ 0 \ leq f (n) \ leq c * g (n) $ für alle $ n> n_0 $ .
Die Art und Weise, wie ich es verstehe, $ C * g (n) $ zeigt $ C $ multipliziert von $ g (n) $ . Wenn dies der Fall ist, wie wird der obige Ausdruck dann die Zeit angeben, und nicht nur der
Lösung
Wie spielt f (n)
es nicht. Bachmann-Landau-Notation ist einfach ein praktischer Weg, um die Wachstumspreise zu vergleichen. Es sagt nichts über was diese Funktionen bedeuten , und wir können ziemlich sicher sein, dass Bachmann nicht an Computer nachgedacht, als er 1894 mit sich kam.
Welche Bedeutung Sie zuordnen, wenden Sie sich an diese Funktionen. Wenn zum Beispiel Vergleichsvergleichs-Sortieralgorithmen, nehmen wir normalerweise
Hinweis auch, dass all dies immer relativ zu einem Maschinenmodell oder einem Kostenmodell ist.
Als ein sehr einfaches Beispiel, wenn ich Sie fragen würde, was ist der algorithmische SCHLECHTE-STEP-Komplexität für das Kopieren einer Liste, sagen Sie $ O (n) $ . Tatsächlich wäre die richtige Antwort wäre "Ich kann Ihnen nicht sagen, weil Sie das Maschinenmodell noch nicht angegeben haben". Denn beispielsweise in einer Turing-Maschine, ist das Kopieren einer Liste
Andere Tipps
sagt, dass die Laufzeit eines Algorithmus in
Die nicht angegebene Konstante $ C $ kann die Informationen über die realen Kosten der Grundvorgänge des Algorithmus enthalten, der zwischen Läufen unbekannt und / oder variabel sein kann, Aber auch bekannter Zeit, um einen Zeitraum zu kosten, der begrenzt ist. Die nicht näherifizierte Konstante $ N_0 $ $ spiegelt wider, dass die angegebene gebundene Größe auf große Größen des Eingangs (oder der Parameter
Andere Symbole werden verwendet, um andere Arten zu geben Genauere Informationen zur Laufzeit.