2016-08-12 12 views
-1

Wenn die Laufzeit eines Algorithmus berechnen, ignorieren wir immer die Konstante wie 3n + 2 = O (n) warum und warum ignorieren wir die Laufzeit von einfachen Anweisungen. und welchen Unterschied zwischen Laufzeit und Ausführungszeit?Wie berechnet man Laufzeit

+0

Sie verwechseln die algorithmische Komplexität mit Laufzeit und Ausführungszeit. Wikipedia ist wahrscheinlich ein guter Anfang für das Thema. –

+1

Überprüfen Sie diese beliebte Frage zur Algorithmuskomplexität: http://stackoverflow.com/questions/487258/what-isa-plain-english-explanation-of-big-o-notation/487278#487278 – m69

Antwort

0

Die Big-O-Notation ist eine asymptotische Notation, die aus der Mathematik stammt und das Verhalten von Funktionen in "Grenzen" beschreibt.

Die einfache Art, asymptotische Notation zu betrachten, ist, dass sie alle konstanten Faktoren in einer Funktion verwirft. Grundsätzlich ist a n 2 immer größer als b n, wenn n ausreichend groß ist (vorausgesetzt, dass alles positiv ist). Das Ändern der konstanten Faktoren a und b ändert das nicht - es verändert den spezifischen Wert von n, wobei a n^2 größer ist, ändert aber nichts daran, dass es passiert. Wir sagen also, dass O (n^2) größer ist als O (n), und vergessen Sie die Konstanten, die wir sowieso nicht kennen können.

  • Kompilieren Sie Zeit = nehmen Sie Quellcode, machen Sie eine ausführbare Datei.
  • Laufzeit = Ausführbare Eingabe (Eingabe über Tastatur, Maus, Netzwerk usw.) und Ausgabe generiert.
+0

wenn a und b sind große Zahl macht es keinen Unterschied in der Berechnung? sagen a = 100000 und b = 9000 bei der Berechnung a * n + b = O (n) es wirklich anders im Ergebnis von aber 100000 * n + 9000 –

+0

Durch die Berücksichtigung der Konstanten haben wir keine effektive Änderung, was bedeutet Wenn der Wert von a und b sehr groß ist, macht a * n + b = O (n) keinen Unterschied im Wert der Konstanten. –

Verwandte Themen