Die Big-O-Notation ist eine Möglichkeit, Algorithmen zu vergleichen. Sie vergleicht sie, indem sie berechnet, wie viel Speicherplatz benötigt wird und wie viel Zeit für die Ausführung benötigt wird.
Die Big-O-Notation wird oft verwendet, um zu ermitteln, wie komplex ein Problem ist, auch bekannt als die Komplexitätsklasse des Problems. Der Mathematiker Paul Bachmann (1837-1920) war der erste, der diese Notation 1896 in der zweiten Auflage seines Buches "Analytische Zahlentheorie" verwendete. Edmund Landau (1877-1938) machte die Notation populär. Aus diesem Grund spricht man, wenn man von einem Landau-Symbol spricht, von dieser Notation.
Die Big-O-Notation ist nach dem Begriff "Ordnung der Funktion" benannt, der sich auf das Wachstum der Funktionen bezieht. Die Big-O-Notation wird verwendet, um die obere Grenze (den höchstmöglichen Betrag) der Wachstumsrate der Funktion zu finden, d.h. es wird die längste Zeit berechnet, die benötigt wird, um die Eingabe in die Ausgabe umzuwandeln. Das bedeutet, dass ein Algorithmus danach gruppiert werden kann, wie lange er in einem Worst-Case-Szenario, bei dem jedes Mal der längste Weg genommen wird, dauern kann.
Big O ist ein Ausdruck, der die Worst-Case-Szenario-Laufzeit findet und zeigt, wie effizient ein Algorithmus ist, ohne dass das Programm auf einem Computer ausgeführt werden muss. Dies ist auch nützlich, da verschiedene Computer unterschiedliche Hardware haben können und daher unterschiedlich viel Zeit für die Ausführung benötigen. Da Big O immer den ungünstigsten Fall annimmt, kann es eine konsistente Messung der Geschwindigkeit zeigen: Unabhängig von Ihrer Hardware wird O ( 1 ) {\darstellungsstil O(1)} immer schneller fertig als O ( n ! ) {\darstellungsstil O(n!)}
, weil sie unterschiedlich effizient sind.