Algorithmen und deren Komplexität Flashcards

(41 cards)

1
Q

Was ist eine Instanz für ein Problem?

A

eine mögliche Eingabe für ein spezifisches Problem

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

Was ist ein Algorithmus?

A

definiert eine Folge elementarer Anweisungen zur Lösung eines Problems

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

Was bedeutet Korrektheit im Bezug auf Algorithmen?

A

Ein Algorithmus stoppt für jede mögliche Eingabe
mit der korrekten Ausgabe

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

Sind Variablen im Pseudo-Code default lokal oder global?

A

lokal

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

Was ist call by value?

A
  • Die Werte der tatsächlichen Parameter werden in die formalen Parameter der Funktion kopiert.
  • Es gibt zwei Kopien von Parametern, die in verschiedenen Speicherorten gespeichert sind: die Originalkopie und die Funktionskopie.
  • Änderungen, die innerhalb von Funktionen vorgenommen werden, spiegeln sich nicht in den tatsächlichen Parametern des Aufrufers wider.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist call by reference?

A
  • Anstatt die Werte von Variablen zu übergeben, übergeben wir die Adresse von Variablen (Speicherort von Variablen) an die Funktion.
  • Tatsächliche und formale Argumente werden im selben Speicherort erstellt.
  • Änderungen an tatsächlichen Parametern können innerhalb der Funktion vorgenommen werden und spiegeln sich in den tatsächlichen Parametern des Aufrufers wider.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist beim Pseudo-Code default? call by value oder reference?

A

call by value

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

Wie gibt man Variablen als Parameter an, die dem Prinzip call by reference entsprechen sollen an?

A

mit einem & davor

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

Wie werden boolesche operatoren ausgeführt im Pseudo-Code?

A

Boole‘sche Operatoren werden träge ausgewertet (lazy evaluation), d.h. von links nach rechts bis der Ausdruck garantiert falsch oder wahr ist.

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

Worauf weißt das Schlüsselwort error im Pseudo-Code hin?

A

weißt auf nicht erfüllte Randbedingungen an die Eingabe hin, die dann zu einem Fehler und Abbruch führen

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

Was ist die formale Korrektheit von Algorithmen?

A
  • Angabe von Vor- und Nachbedingung für jede Anweisung
  • Schleifeninvariante: Bedingung, die vor, während (d.h. nach jeder Iteration) und nach Ausführung einer Schleife gültig ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist eine Schleifeninvariante?

A

Bedingung, die bei jedem Durchlauf gelten muss

vor, während (nach jeder Iteration) u. nach Ausf. einer Schleife gültig

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

Wovon hängt die physikalische Laufzeit ab?

A
  • hängt stark vom Computer ab
  • hängt von vielen Details der Eingabedaten ab
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Modellannahmen gibt es bei der Laufzeit?

A
  • Uniformes Kostenmaß: Math. Operationen kosten unabhängig von der Größe der Operanden eine Zeiteinheit
  • RAM-Modell
    – Zugriff auf Daten kostet eine konstante Zeiteinheit
    – Algorithmen werden sequentiell ausgeführt (nur ein Prozessor)
  • Statt der genauen Laufzeit wird eine Schranke angegeben
  • Konstante Faktoren werden vernachlässigt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Modellannahmen gibt es bei dem Speicherplatz?

A

RAM-Modell: Speicherung eines elementaren Datenobjekts kostet unabhängig vom Wert konstanten Speicherplatz

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

Wie können wir die Effizienz eines Algorithmus unabhängig von Details der Eingabe bewerten?

A

Durch asymptotische Laufzeit:
* Wie verhält sich der Algorithmus bei immer größeren Instanzen?

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

Worauf bezieht sich eine Laufzeitanalyse, wenn nicht anders angegeben?

A

auf den Worst Case

18
Q

Was ist O(g(n))?

A

die Menge der Funktionen, die nicht stärker wachsen als g (= hat die Bedeutung von ∈, mit O() ist manchmal eine Menge, manchmal ein Repräsentant gemeint)

19
Q

Es gilt f, g = O(F).
Was gilt für f+g?

20
Q

Es gilt f = O(F) und c konstant.
Was gilt für c*f?

21
Q

Es gilt f = O(F) und g = O(f).
Was gilt für g?

22
Q

Es gilt f = O(F) und g = O(G).
Was gilt für f*g?

23
Q

Es gilt f = O(F*G).
Was gilt für f noch?

24
Q

Es gilt f = O(F) und |F| ≤|G|.
Was gilt für f noch?

25
Was gilt für Polynome vom Grad m bei der O-Notation?
Ist p ein Polynom von Grad m gilt: p = O(N^m)
26
Wofür steht bei dem O-Kalkül das O?
27
Wofür steht bei dem O-Kalkül das o?
28
Wofür steht bei dem O-Kalkül das Ω?
29
Wofür steht bei dem O-Kalkül das ω?
30
Wofür steht bei dem O-Kalkül das Θ?
31
Wie schaut eine if-elseif-else Verzweigung im Pseudo-Code aus?
32
Wie schaut eine while Schleife im Pseudo-Code aus?
33
Wie schaut eine for-to/downto Schleife im Pseudo-Code aus?
34
Wie schaut eine repeat-until Schleife im Pseudo-Code aus?
35
Ist die Variable für eine for Schleife im Pseudo-Code noch nach Schleifenende definiert?
Ja, (C-Konvention)
36
Wie schreibt man Kommentare im Pseudo-Code?
// Kommentar-Beispiel
37
Wofür steht == im Pseudo-Code?
Vergleich von Ausdrücken
38
Wofür steht = im Pseudo-Code?
Zuweisung von Werten
39
Wie werden Feldelemente und Teilfelder angegeben?
Feldelemente: A[i] Teilfelder: A[i..j]
40
Wie funktioniert ein Scan-Line Verfahren?
**Beispiel max-subarray-problem** * durchlaufe X von links nach rechts * merke dir das bisherige Maximum maxtsum * merke dir die rechte Randteilsumme
41
Zähle die Funktionen für die O-Notation aus der Vorlesung nach Größenordnung aufsteigend auf. * sqrt(n) * log^2 n * 2^n * n * n^2 * log n * n^3 * n log n * 1
* 1 * log n * log^2 n * sqrt(n) * n * n log n * n^2 * n^3 * 2^n