Algorithmus-Komplexität Flashcards
Warum kann man die Laufzeit nicht einfach stoppen
vom Rechner und technischer Entwicklung abhängig
Was beschriebt die O-Notation
Komplexitätsklasse / Größenordnung der Schrittzahlen eines Algorithmus in Abhängigkeit von Problemgröße
Welche Komplexitätsklasse gibt es
O(1) -> konstanter Aufwand O(log n) -> logarithm. Aufw. O(n) -> linearer Aufw. O(n * log n) -> linear-log. Aufw. O(n^2) -> quadratischer Aufw. O(n^k) -> polynomialer Aufw. O(k^n) -> exponentieller Aufw.
Bedingung für Feststellung der Komplexitätsklasse
f(n) fällt in O(g(n)) wenn c (positive reelle Zahl) n0 (natürliche Zahl) existieren, für die gilt f(n) <= c*g(n) für alle n >= n0
Laufzeit einer einfachen for-Schleife
größtmögliche Iterationzeit * Anzahl der Iterationen
Laufzeit verschachtelten for Schleife
Laufzeit innere Schleife ∗ Produkt(äußeren Schleifengrößen)
Laufzeit if-else-Anweisung
Testaufwand + max(True-Aufwand, False-Aufwand)
Komplexitätsklasse Nacheinanderausführung
Komplexitätsklasse entspricht dem Teil mit dem größten Exponenten (weil sich dieser am schnellsten erhöht) konstante Faktoren werden ignoriert