Flashcards Algorithmen - Tabellenblatt1

1
Q

Was sind die Eigenschaften eines Algorithmus?

A

Korrektheit, Vollständigkeit, Eindeutigkeit/Ausführbarkeit, statische Endlichkeit, dynamische Endlichkeit, Effizienz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition Schleifeninvariante

A

Eine Schleifeninvariante ist eine Aussage über eine Variable, die stets gültig ist, wenn die Wiederholbedingung geprüft wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Eigenschaften einer Schleifeninvariante

A

1.Die Invariante ist vor der ersten Iteration der Schleife wahr 2.Wenn sie vor der Iteration wahr ist, bleibt sie auch zum Beginn der nächsten Iteration wahr (Invariante bleibt erhalten) 3.Wenn die Schleife terminiert, liefert die Invariante eine zweckdienliche Eigenschaft, die hilft zu zeigen, dass der Algorithmus korrekt ist

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Zeichen für Worst-case - Laufzeit

A

Θ (Theta)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Woraus besteht das Teile- und Beherrsche-Prinzip?

A
  1. Teilen (Aufteilen des Problems in kleinere Instanzen des gleichen Problems) 2. Beherrschen (rekursives Beherrschen des Teilproblems, direkte Lösung für ausreichend kleine Teilprobleme) 3. Vereinigen (Vereinigen der Teillösungen zur Gesamtlösung)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Θ(g(n))

A

eine Menge von Funktionen: {f(n): es existieren positive Konstanten c1, c2 und n0, so dass 0 <= c1*g(n) <= f(n) <= c2*g(n) für alle n >= n0}. Θ(g(n)) ist eine asymptotisch scharfe Schranke von f(n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O(g(n)) (O-Notation)

A

eine Menge von Funktionen: {f(n): es existieren positive Konstanten c und n0, so dass 0 <= f(n) <= c*g(n) für alle n >= n0}. O(g(n)) ist eine asymptotische obere Schranke von f(n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Omega(g(n))

A

eine Menge von Funktionen: {f(n): es existieren positive Konstanten c und n0, so dass 0 <= c*g(n) <= f(n) für alle n >= n0}. Omega(g(n)) ist eine asymptotische untere Schranke von f(n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

o(g(n)) (klein o-Notation)

A

eine Menge von Funktionen: {f(n): für jede positive Konstante c > 0 existiert ein konstantes n0, so dass 0 < cg(n) für alle n >= n0}. o(n) ist eine obere Schranke, die nicht asymptotisch scharf ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

ω(g(n)) (klein omega-Notation)

A

eine Menge von Funktionen: {f(n): für jede positive Konstante c > 0 existiert ein konstantes n0, so dass 0 <= cg(n) <= f(n) für alle n >= n0}. ω(m) ist eine untere Schranke, die nicht asymptotisch scharf ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Eigenschaften von Insertion Sort

A

Einfach, effizient für kleine Datenmengen, adaptiv für grob vorsortierte Listen (O(n)), stabil, in place. Nach k Iterationen sind die ersten k+1 Elemente der Liste sortiert. Best-case: O(n), Worst-case: O(n^2), Average-case: O(n^2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Eigenschaften von Selection Sort

A

Einfach, je nach Implementierung stabil. Nach k Iterationen enthält die Subliste 1..k die k kleinsten Elemente der Liste in sortierter Folge. Best-case=Worst-case=Average-case: O(n^2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Eigenschaften von Bubble Sort

A

Einfach, stabil. Best-case: O(n), Worst-case: O(n^2), Average-case: O(n^2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Eigenschaften von Heap Sort

A

In place. Best-case=Worst-case=Average-case: O(n log n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Eigenschaften von Quick Sort

A

In place. Performance abhängig von Balance der Partitionierung. Kleine versteckte Faktoren in O(n log n). Best-case=Average-case: O(n log n). Worst-case: O(n^2).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Eigenschaften von Merge Sort

A

Stabil, gut parallelisierbar. Speichereffizienz worst-case: O(n). Best-case=Worst-case=Average-case: O(n log n).

17
Q

Eigenschaften von Divisionshashes

A

h(k) = k mod m. Schnelle Berechnung. Zweierpotenzen für m sollten vermieden werden (da k mod m sonst nur von den zwei niederwertigen Bits von k abhängt). Wenn k eine Zeichenkette interpretiert, sollte m=2^p-1 vermieden werden, da sonst Permutationen des Strings kollidieren. Empfehlung für m: Primzahl, die nicht zu nahe an einer Zweierpotenz liegt.

18
Q

Eigenschaften von Multiplikationshashes

A

h(k) = floor(m(k*A mod 1)). Wähle eine Konstante A aus ]0..1[, multipliziere mit k, extrahiere den gebrochenen Teil (mittels mod 1), multipliziere mit m, runde ab (oder auf). Nachteil: langsamer als Division. Vorteil: Wert von m spielt keine kritische Rolle (kann auch Zweierpotenz sein).

19
Q

Laufzeit naives String Matching

A

Vorverarbeitung: O(1)

Matching: O((n-m+1)m)

20
Q

Laufzeit Rabin-Karp

A

Vorverarbeitung: Theta(m)

Matching: O((n-m+1)m) (worst-case)

21
Q

Laufzeit endlicher Automat

A

Vorverarbeitung: O(m*|Sigma|)

Matching: Theta(n)

22
Q

Laufzeit Knuth-Morris-Pratt

A

Vorverarbeitung: Theta(m)

Matching: Theta(n)

23
Q

Laufzeit Countingsort

A

Worstcase: Theta(k+n)

24
Q

Laufzeit Radixsort

25
Q

Laufzeit Bucketsort

A

Worst: Theta(n^2)

Avg/Best: Theta(n)