Informatik Probleme beinhalten oft mehr als eine Lösung , und jede Lösung wird durch Anschluss an eine Reihe von Regeln , auch als Algorithmus bekannt erreicht . O-Notation bietet eine Methode, bei der die Effizienz eines Algorithmus - in anderen Worten, die Zeit, die für einen Algorithmus in Abhängigkeit von der Größe des Eingangssignals in diesem Algorithmus auszuführen. Hintergrund
Big O-Notation - auch als Landau -Symbol bekannt ist, nach dem deutsch-jüdischen Mathematiker Edmund Landau - beschreibt die Wachstumsrate einer Funktion , auch als bekannt " Ordnung", damit die Großbuchstaben "O" O-Notation ist , die die Ausübung eines Algorithmus selbst zu messen und nicht die Hardware, auf der der Algorithmus ausgeführt wird. Ein Stück Hardware kann schneller oder langsamer als andere mit einem konstanten Faktor , so sind alle konstanten Faktoren von Big O-Notation entfernt .
Constant Laufzeit
Ein Algorithmus das dauert immer ungefähr die gleiche Zeit zu laufen , unabhängig von der Größe der Eingabe , wird gesagt, " konstante" Laufzeit haben . In Big O-Notation , ist diese Art von Algorithmus als " Folge 1 "-Algorithmus bekannt und wird von O (1) bezeichnet. Beispiele von O (1) -Algorithmen gehören Schieben oder knallen Daten zu und von einem Stapel Programmierung und Auslesen eines einzelnen Datenelements aus einem Array , wenn Sie seine Position kennen . Diese Algorithmen nur dann eine bestimmte Anzahl von Schritten , egal wie groß der Eingang wird .
Linear Laufzeit
Ein Algorithmus , dessen Laufzeit steigt proportional , oder linear , ist mit der Größe seines Eingangs sagte zu "linear" Nachlaufzeit haben . In Big O-Notation , ist diese Art von Algorithmus als "Ordnung n "-Algorithmus bekannt und wird von O ( n) bezeichnet , was darauf hinweist , dass die Zeit, die der Algorithmus linear laufen, wie die Anzahl der Datenelemente , "n , " erhöht . Ein einfaches Beispiel für eine O ( n )-Algorithmus ist ein Algorithmus, der die Summe einer Liste von Zahlen berechnet , eine Addition für jedes Element in der Liste wie erforderlich , so dass die Anzahl von Additionen ist die gleiche wie die Anzahl der Elemente
Quadratische Laufzeit
ein Algorithmus , dessen Laufzeit um einen Faktor von n ^ 2 , wenn die Größe der Eingabe erhöht sich um den Faktor "n" zu dem haben " quadratische " Nachlaufzeit . In O-Notation , ist diese Art der Algorithmus als eine Ordnung n ^ 2 Algorithmus oder einfach ein quadratischer Algorithmus bekannt ist, und wird durch O ( n ^ 2) bezeichnet. Beispiele von O ( n ^ 2) Algorithmen sind Sortier -Algorithmen, wie Insertion Sort und Bubble sort , in denen die Verdoppelung der Größe der Eingabe vervierfacht die Laufzeit.