SortierAlgorithmen Flashcards

(25 cards)

1
Q

Tafelübung

Insertion Sort

A

vergleichsbasiertes Verfahren

Beim Einfügen jedes Werts wird die Liste durchlaufen und Wert an entsprechender Stelle eingefügt

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

Tafelübung

Insertion Sort

Komplexität

A

Worst Case:
Für jeden Wert durch die ganze Liste Laufen
O(n^2)

Average Case:
O(n^2)

best Case:
O(n)

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

Tafelübung

Selection Sort

A

vergleichsbasiertes Verfahren

Maximum (Minimum) auswählen und in neue Liste einfügen,
wiederholen.

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

Tafelübung

Selection Sort

Komplexität

A

Worst Case:
jedes Mal muss neues Maximum gefunden werden
O(n^2)

Average Case:
O(n^2)

best Case:
O(n^2)

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

Tafelübung

Vergleichsbasierte Verfahren

Def.

A

Verfahren, die auf paarweisen Vergleichen von Elementen
basieren
Bestenfalls: O(n log n)

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

Tafelübung

Heap Sort

Def.

A

Idee: Ein Heap ist die perfekte Datenstruktur, um ein Maximum
(Minimum) zu finden!
1. Heap aufbauen

  1. Wiederholen:
    - Maximum (Minimum) entnehmen und
    - Heap-Eigenschaft wiederherstellen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tafelübung

Heap Sort

Komplexität

A
  1. Heap aufbauen: n mal in den Heap einfügen
    O(n log n)
  2. n mal das Maximum entnehmen und jeweils die
    Heap-Eigenschaft wiederherstellen
    O(n log n)
    => O(n log n)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tafelübung

Merge Sort

A

»Easy split, hard join.«

Zeitkomplexität:
O(n log n)

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

Tafelübung

Quick Sort

A

Prinzip:
Split:
Ein Pivot-Element p auswählen,
die Liste in zwei Teil-Listen aufteilen (kleiner gleich p und größer gleich p)

rekursiv weitermachen

dann (ist sortiert) zusammenfügen

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

Tafelübung

Quick Sort

Komplexität

A

Optimalfall:
Halbierung in jedem Schritt
O(log n) Ebenen à O(n)
=> O(n log n)

Schlechtester Fall:
Liste schrumpft in jedem Schritt um 1-> n Ebenen
=> O(n2)

Durchschnitt:
=> O(n log n)

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

Tafelübung

Quick Sort: Implementierung Struktur

A

Quick Sort: Implementierung
Struktur ist aber immer die gleiche:

  1. Pivot-Element auswählen
    Bei manchen Implementierungen muss ein bestimmtes
    Pivot-Element (z. B. das in der Mitte) verwendet werden,
    andere sind freier.
  2. Liste/Feld aufteilen
    Der schwierige Teil.
    Implementierungen unterscheiden sich z. T. stark.
  3. Teil-Listen rekursiv sortieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Tafelübung

Implementierung - QuickSort mit partition

A
void quicksort(int[] a) {
    quicksort(a, 0, a.length);
}
void quicksort(int[] a, int low, int high) {
    if (high - low <= 1) {
        return;
    }
    int pivot = a[low];
    int n = partition(a, low, high, pivot);
    quicksort(a, low, n);
    quicksort(a, n+1, high);
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

KLAUSURAUFGABE SS18

Was ist der Unterschied zwischen vergleichsbasierten und nicht vergleichsbasierten Sortier- Algorithmen bezüglich ihrer Laufzeit-Komplexität?

A

eigene Lösung

Vergleichsbasierte Verfahren O(n log n)

nicht-vergleichsbasierte Verfahren O(n+m / n*k)

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

KLAUSURAUFGABE SS18

Zu welcher Komplexitätsklasse gehören die schnellsten Sortier-Algorithmen, wenn die Daten
in folgenden Datenstrukturen vorliegen, aber sonst nichts über die Daten bekannt ist?
• lineare, unsortierte verkettete Liste:
• unsortierte Reihung (Array):
• Halde:

A
  1. QuickSort & MergeSort O(n log n)
  2. QuickSort & MergeSort O(n log n)
  3. Fangfrage weil Halde nicht sortiert…
    Genauso QuickSort, MergeSort O(n log n)

(HeapSort ?)

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

KLAUSURAUFGABE WS17

Welche Aussage(n) trifft/treffen auf den Quick-Sort-Algorithmus zu

  1. Der Index der Pivot-Variablen muss immer in der Mitte des Feldes, das
    sortiert werden soll, liegen.
  2. Der Wert der Pivot-Variablen muss immer der Mittelwert der Werte der
    Elemente, die sortiert werden sollen, sein.
  3. Der Wert der Pivot-Variablen muss immer der Median der Werte der
    Elemente, die sortiert werden sollen, sein.
  4. Eine besonders günstige Aufteilung des zu sortierenden Feldes erhält
    man, wenn bei jeder Teilung ein Teilfeld mit nur einem Element entsteht,
    das bereits sortiert ist.
  5. Eine besonders günstige Aufteilung des zu sortierenden Feldes erhält
    man, wenn etwa gleich große Teilfelder entstehen, die aber nicht bereits
    sortiert sein müssen.
A

eigene Lösung

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

KLAUSURAUFGABE WS17

Welche Aussage(n) trifft/treffen auf das sogenannte Radix-Sortieren zu?

  1. Ein Behälter kann beliebig viele Schlüssel aufnehmen. Dies kann beispielsweise
    mit einer verketteten Liste pro Behälter implementiert werden.
  2. Es gibt exakt genau so viele Behälter wie es Schlüssel gibt.
A

eigene Lösung

  1. richtig
  2. falsch
17
Q

KLAUSURAUFGABE SS17

Welche Aussagen bzgl. Sortierverfahren sind richtig?

Die Haldensortierung (HeapSort) verbessert das einfache Sortieren durch Auswählen (SelectionSort) durch Anordnung der zu sortierenden Elemente in einer Halde (Heap).

HeapSort teilt die zu sortierende Folge in einen Haldenbereich und einen bereits sortierten
Bereich auf und ist damit ein typischer Vertreter der divide & conquer-Verfahren.

Die Wiederherstellung der Heap-Eigenschaft nach der Entnahme des Maximums dauert
O(log n).

A
  1. richtig
  2. falsch
  3. richtig
18
Q

KLAUSURAUFGABE WS16

Welche Aussagen bzgl. Sortierverfahren sind richtig?

Die Haldensortierung (HeapSort) verbessert das einfache Sortieren durch Auswählen (SelectionSort) durch Anordnung der zu sortierenden Elemente in einer Halde (Heap).

HeapSort teilt die zu sortierende Folge in einen Haldenbereich und einen bereits sortierten
Bereich auf und ist damit ein typischer Vertreter der divide & conquer-Verfahren.

Die Wiederherstellung der Heap-Eigenschaft nach der Entnahme des Maximums dauert
O(log n).

A
  1. richtig
  2. falsch
  3. richtig
19
Q

KLAUSURAUFGABE SS16

Zu welcher Komplexitätsklasse gehören die schnellsten in der Vorlesung behandelten Sortier- Algorithmen, wenn die Daten in folgenden Datenstrukturen vorliegen, aber sonst nichts über
die Daten bekannt ist?

  • lineare, unsortierte verkettete Liste:
  • unsortierte Reihung (Array):
  • Halde:
A
  1. QuickSort & MergeSort O(n log n)
  2. QuickSort & MergeSort O(n log n)
  3. Fangfrage weil Halde nicht sortiert…
    Genauso QuickSort, MergeSort O(n log n)

(HeapSort ?)

20
Q

KLAUSURAUFGABE SS16

Aus welchen drei Schritten besteht ein Algorithmus nach dem Divide-and-Conquer-Prinzip?
Nennen Sie diese Schritte und beschreiben Sie kurz, was im Quicksort-Algorithmus in jedem
dieser Schritte abläuft. In welchem Schritt wird die eigentliche Arbeit verrichtet?

A
  1. split: Aufteilen des Problems
    Split:
    Ein Pivot-Element p auswählen,
    die Liste in zwei Teil-Listen aufteilen: kleiner gleich und größer gleich pivot
  2. Rekursives Lösen der Teilprobleme
    Die Liste ist schon ein bisschen »sortierter« als vorher
    -> (rekursiv) weitermachen!
  3. join: Zusammenführen der Teillösungen
    am Ende zusammenfügen
21
Q

KLAUSURAUFGABE WS 15

Welche der folgenden Komplexitätsklassen gibt das beste im Mittel (average case) erreichbare
asymptotische Verhalten für nicht vergleichsbasiertes Sortieren an?

A

eigene Lösung

O(n^2)

22
Q

KLAUSURAUFGABE WS 15

Welche der folgenden Komplexitätsklassen gibt das beste im Mittel (average case) erreichbare
asymptotische Verhalten für vergleichsbasiertes Sortieren an?

A

eigene Lösung

O(n log n)

23
Q

KLAUSURAUFGABE WS 14

Welche Aussage(n) trifft/treffen auf das sogenannte Radix-Sortieren zu?

  1. Ein Behälter kann beliebig viele Schlüssel aufnehmen. Dies kann beispielsweise
    mit einer verketteten Liste pro Behälter implementiert werden.
  2. Wird durch Löschen von Elementen ein Behälter leer, dann genügt es,
    diesen als frei zu markieren.
  3. Um aus n Schlüsseln den Richtigen aufzufinden werden im Worst-Case
    nicht weniger als O(n log(n)) Operationen benötigt.
  4. Es gibt exakt genau so viele Behälter wie es Schlüssel gibt.
A
  1. richtig
  2. richtig
  3. falsch
  4. falsch
24
Q

KLAUSURAUFGABE SS15 Welche Aussage(n) trifft/treffen auf den Quick-Sort-Algorithmus zu

  1. Der Index der Pivot-Variablen muss immer in der Mitte des Feldes, das
    sortiert werden soll, liegen.
  2. Der Wert der Pivot-Variablen muss immer der Mittelwert der Werte der
    Elemente, die sortiert werden sollen, sein.
  3. Der Wert der Pivot-Variablen muss immer der Median der Werte der
    Elemente, die sortiert werden sollen, sein.
  4. Eine besonders günstige Aufteilung des zu sortierenden Feldes erhält
    man, wenn bei jeder Teilung ein Teilfeld mit nur einem Element entsteht,
    das bereits sortiert ist.
  5. Eine besonders günstige Aufteilung des zu sortierenden Feldes erhält
    man, wenn etwa gleich große Teilfelder entstehen, die aber nicht bereits
    sortiert sein müssen
A

eigene Lösung

  1. falsch
  2. falsch
  3. falsch
  4. falsch
  5. richtig
25
KLAUSURAUFGABE SS15 Welche Aussage(n) trifft/treffen auf das sogenannte Radix-Sortieren zu? 1. Ein Behälter kann beliebig viele Schlüssel aufnehmen. Dies kann beispielsweise mit einer verketteten Liste pro Behälter implementiert werden. 2. Es gibt exakt genau so viele Behälter wie es Schlüssel gibt.
eigene Lösung 1. richtig 2. falsch