Lecture 2: Komplexitätsanalyse Flashcards
(14 cards)
Was ist das Ziel der Effizienzmessung von Algorithmen?
Beschreibung der Performance von Algorithmen möglichst genau, aber in kurzer und einfacher Form.
Warum ist die exakte Bestimmung der Laufzeit eines Algorithmus schwierig?
Weil die Laufzeit stark von der Eingabe abhängt und schwer exakt spezifizierbar ist.
Was ist bei der Eingabekodierung zu beachten?
Die Kodierung beeinflusst die wahrgenommene Komplexität erheblich (z. B. Laufzeit bei unärer vs. binärer Darstellung).
Was ist der Unterschied zwischen unärer und binärer Eingabekodierung am Beispiel der Primfaktorisierung?
Unär: Laufzeit polynomiell zur Eingabelänge.
Binär: Laufzeit exponentiell zur Eingabelänge.
Wie wird typischerweise die Größe einer Eingabe definiert?
Zahlen: Anzahl der Bits (bei binärer Kodierung)
Mengen/Folgen: Anzahl der Elemente
Graphen: Anzahl Knoten und Kanten
Was ist der „Worst Case“ bei der Effizienzmessung?
Die maximale Laufzeit über alle Instanzen gleicher Eingabegröße.
Was ist der „Average Case“ bei der Effizienzmessung?
Die durchschnittliche Laufzeit über alle Instanzen gleicher Eingabegröße.
Was ist der „Best Case“ bei der Effizienzmessung?
Die minimale Laufzeit über alle Instanzen gleicher Eingabegröße.
Was beschreibt die gleiche Wachstumsrate zweier Funktionen f(n) und g(n)?
Zwei Funktionen haben gleiche Wachstumsrate, wenn ihr Verhältnis für große n durch positive Konstanten beschränkt ist.
Was bedeutet asymptotisches Verhalten O(f(n))?
Funktionen, die asymptotisch nicht schneller wachsen als f(n).
Was bedeutet asymptotisches Verhalten Ω(f(n))?
Funktionen, die asymptotisch nicht langsamer wachsen als f(n).
Was bedeutet asymptotisches Verhalten Θ(f(n))?
Funktionen, die asymptotisch gleich schnell wachsen wie f(n).
Was bedeutet o(f(n))?
Funktionen, die asymptotisch langsamer wachsen als f(n).
Was bedeutet ω(f(n))?
Funktionen, die asymptotisch schneller wachsen als f(n