Big O Notation
Die Big O Notation ist ein mathematisches Werkzeug zur Messung der Effizienz von Algorithmen. Sie beschreibt, wie Laufzeit oder Speicherbedarf mit der Eingabegröße wachsen, anhand von Kategorien wie O(1), O(n) und O(log n).
Die Big O Notation ist ein mathematisches Werkzeug zur Messung der Effizienz von Algorithmen. Sie beschreibt, wie Laufzeit oder Speicherbedarf mit der Eingabegröße wachsen, anhand von Kategorien wie O(1), O(n) und O(log n).
Die Big O Notation ist ein mathematisches Konzept, das in der Informatik verwendet wird, um die Effizienz von Algorithmen zu beschreiben. Sie zeigt die Beziehung zwischen der Eingabegröße eines Problems und der Anzahl der benötigten Operationen auf und konzentriert sich darauf, wie sich die Leistung skaliert, anstatt auf exakte Ausführungszeiten.
Big O bietet eine abstrakte Möglichkeit, die Komplexität von Algorithmen zu analysieren, wodurch Entwickler verschiedene Ansätze vergleichen und effiziente Lösungen auswählen können.
O(1) – Konstante Zeit
Die Ausführungszeit hängt nicht von der Eingabegröße ab.
Beispiel: Zugriff auf ein Array-Element per Index.
O(log n) – Logarithmische Zeit
Die Eingabegröße wird in jedem Schritt reduziert.
Beispiel: Binäre Suche in einer sortierten Liste.
O(n) – Lineare Zeit
Die Ausführungszeit wächst proportional zur Eingabegröße.
Beispiel: Iteration über alle Elemente einer Liste.
O(n log n) – Log-lineare Zeit
Typisch für effiziente Sortieralgorithmen.
Beispiel: Mergesort, Quicksort (im Durchschnitt).
O(n²) – Quadratische Zeit
Die Performance sinkt stark bei größeren Eingaben.
Beispiel: Verschachtelte Schleifen, Bubblesort.
O(2^n) – Exponentielle Zeit
Schon bei moderaten Eingaben kaum praktikabel.
Beispiel: Brute-Force-Lösung des Traveling-Salesman-Problems.
O(n!) – Fakultätszeit
Extrem ineffizient, wächst schneller als exponentiell.
Beispiel: Alle Permutationen einer Menge erzeugen.
# O(n): Lineare Zeit
def finde_max(arr):
max_wert = arr[0]
for num in arr:
if num > max_wert:
max_wert = num
return max_wert
Diese Funktion prüft jedes Element in der Liste, daher wächst ihre Laufzeit linear mit der Eingabegröße.
Big O wird auch verwendet, um den Speicherverbrauch zu beschreiben:
Die Big O Notation ist ein Grundpfeiler der Algorithmus-Analyse in der Informatik. Indem sie beschreibt, wie sich Laufzeit und Speicherbedarf skalieren, unterstützt sie Entwickler bei der Auswahl effizienter Lösungen für Probleme jeder Größe.