Sortieren Flashcards

Test

1
Q

Wann spricht man von einer partiellen Ordnung R?

A
  • reflexiv: es gilt a R a
  • antisymmetrisch: a R b und b R a folgt a = b
  • transitiv: a R b und b R c folgt a R c
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wann spricht man von einer totalen Ordnung R?

A
  • R ist partielle Ordnung
  • für alle a,b gilt: a R b oder b R a
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie werden Zugriffsoperationen bei der Laufzeitanalyse beim Sortieren bezeichnet?

A

c_z

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

Wie werden Vergleichsoperationen bei der Laufzeitanalyse beim Sortieren bezeichnet?

A

c_v

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

Wie werden Datenaustauschsoperationen bei der Laufzeitanalyse beim Sortieren bezeichnet?

A

c_d

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

Welche Operationen gibt es beim Sortieren?

A
  • Zugriffsoperation
  • Vergleichsoperationen
  • Datenaustauschoperationen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Beschreibe in-place Verfahren

A

Ein Sortieralgorithmus arbeitet ‘in place’, wenn es außer dem zu sortierenden Datenarray nur konstant viel Speicherplatz benötigt.

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

Wann ist ein Sortierverfahren stabil?

A

Ein Sortieralgorithmus ist ‘stabil’, wenn bei Gleichheit der zu sortierenden Objekte die Eingabereihenfolge erhalten bleibt

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

Durch welche Eigenschaften kann man einen Soriteralgorithmus beschreiben?

A
  • Effizienz
  • Speicherbedarf
  • Stabilität
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Laufzeit hat Sortieren durch Auswahl?

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

Wie funktioniert Sortieren durch Auswahl?

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

Wie viele Datenaustauschoperationen benötigt man für den Selectionsort?

A

max. N-1

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

Ist der Selectionsort stabil und in-place?

A

Ja, stabil und in-place

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

Welche Laufzeit Insertionsort?

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

Ist der Insertionsort in-place und stabil?

A

Ja, in-place und stabil

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

Wie funktioniert Sortieren durch Einfügen?

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

Welche Laufzeit hat der Bubblesort?

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

Ist der Bubblesort stabil und in-place?

A

Ja, stabil und in-place

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

Wie funktioniert der Bubblesort?

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

Wie funktioniert der Mergesort?

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

Beschreib den 2-Wege-Merge

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

Welche Laufzeit hat die Merge Operation?
für die Listen L und R

A

O(|L|+|R|) = O(N)

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

Ist die Merge Operation mit Listen stabil und in-place?

A

Ja, stabil und in-place

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

Ist die Merge Operation mit Arrays stabil und in-place?

A

Nein, stabil aber nicht in-place (linear abhängige Arrays als zwischenspeicher)

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

Welche Laufzeit hat der Mergesort?

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

Welchen Speicherbedarf hat der Mergesort?

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

Was passiert mit der Laufzeit, wenn man nicht 2 sondern k Listen bei dem Mergesort verwendet?

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

Was ist die Heap-Bedingung?

A

Objekte liegen auf einer Halde, ein Objekt ist immer mindestens so groß wie die darunter liegenden Objekte

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

Welche Operationen sind auf einem Heap definiert?

A
  • BUILD-MAX-HEAP: baue eine Halde aus
    einer Menge von Elementen
  • HEAP-EXTRACT-MAX: nehme das größte Element von der Halde
  • MAX-HEAPIFY: stelle die Heap- Bedingung nach Entnahme wieder her
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Auf welche Datenstruktur basiert ein Heap?

A

Auf einem binären Baum

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

Was bedeutet linksvollständig?

A

alle Ebenen bis auf die letzte sind vollständig, in der letzten folgen die Elemente von links nach rechts.

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

Wie wird ein Heap durch ein Array repräsentiert?

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

Wie berechnet man den Index des Parent Elements in einem Heap?

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

Welche Höhe hat ein Heap der Größe N maximal?

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

Wie berechnet man den Index des Linken Kind Elements in einem Heap?

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

Wie berechnet man den Index des Rechten Kind Elements in einem Heap?

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

Wie geht man bei Heapify vor?

A

Nehme Max Child der kaputten Stelle i und vertausche die Elemente
Wiederhole an der alten Stelle des Max Child falls immer noch kaputt

38
Q

Welche Laufzeit hat Max-Heapify?

A

O(log n)

39
Q

Welche Laufzeit hat Build-Max-Heap?

A

O(n log n)

40
Q

Hat man ein unsortiertes Array und möchte ein Heap erstellen, was gilt für den Heap nach dem einfügen der Daten, welche Knoten sind dann auf jeden Fall schon Heaps?

Wie berechnet man den Index des ersten Knotens, der kein Heap darstellt

A

Die Blätter

41
Q

Welche Operationen sind auf eine Priority Queue definiert?

A
42
Q

Mit welcher Sortierstruktur kann eine Priority Queue realisiert werden?

A

Durch einen Heap

43
Q

Wie und für welche Zahlen funktioniert der Counting Sort?

A
44
Q

Mit welcher Laufzeit für die Operationen insert, delete, increase, decrease und extract-max kann eine Priority-Queue mit einem Heap realisiert werden?

A

O(log N)

45
Q

Wie funktioniert Heap-Increase-Key?

A
46
Q

Wie wird der Counting Sort stabil realisiert?

A

Am Ende den Array von hinten nach vorne durchlaufen

47
Q

Ist der Counting Sort in-place?

A

Nein

48
Q

Wie funktioniert Heap-Insert?

Der Priority-Queue

A
49
Q

Wie funktioniert der Quicksort?

A
50
Q

Wie funktioniert die Partition Funktion?

A
51
Q

Wie funktioniert die Partition Funktion mit nur einer Schleife?

A
52
Q

Was ist die Rekurrenzgleichung für Quicksort?

A
53
Q

Was ist die Laufzeit vom Quicksort? Pivot-Element liegt in der Mitte

A

O(N log N)

auch average case

54
Q

Wie hoch ist mein Rekursionsbaum, wenn der größere Teil immer 9/10 der Daten annimmt?

A
55
Q

Was ist die Laufzeit vom Quicksort? (Worst Case)

A

Pivot ist Maximum

56
Q

Wie funktioniert der Trivial Sort und für welche Daten?

A

ganzzahlige Zahlen

57
Q

Wie und für welche Zahlen funktioniert der Counting Sort?

A
58
Q

Laufzeit Trivial Sort?

A

O(N)

59
Q

Laufzeit Counting Sort?

A
60
Q

Wie wird der Counting Sort stabil realisiert?

A

Am Ende den Array von hinten nach vorne durchlaufen

61
Q

Wie wird ein m-adischer Schlüssel repräsentiert?

A

Durch einen Vektor

62
Q

Beschreibe den Radix Sort

A
63
Q

Laufzeit vom Radix Sort
Fall 1: d= O(1), m = O(N)

A

O(N)

64
Q

Laufzeit vom Radix Sort
Fall 2: Alle Schlüssel verschieden: d ≥ log_m N :

A

O(N log N)

65
Q

Ist der Radix Sort stabil / in-place?

A

stabil, aber nicht in-place

66
Q

Ist der Counting Sort stabil / in-place?

A

stabil, aber nicht in-place

67
Q

Ist der Trivial Sort stabil / in-place?

A

stabil und in-place

68
Q

Beschreibe den Bucketsort

A
69
Q

Laufzeit Bucketsort
(Worst Case)

A

O(N^2)

70
Q

Laufzeit Bucketsort
(Average Case)

A

O(N)

71
Q

Welche Laufzeit hat eine binäre Suche?

A

O(log N)

72
Q

Beschreibe die Exponentielle Suche

A
73
Q

Laufzeit Exponentielle Suche

A

O(log k)

74
Q

Laufzeit Exponentielle Suche
(Worst Case)

A

O(log N)

75
Q

Was bedeutet output-sensitiv?

A

Laufzeit hängt vom Resultat der Suche ab

76
Q

Beschreib den Trivial-Select(A, i)

Laufzeit?

A

o(N^2)

77
Q

Beschreib den Sort-Select(A, i)

Laufzeit?

A

o(n log n)

78
Q

Beschreib den Rand-Select

A
79
Q

Welche Laufzeit hat der Rand-Select? (Worst Case)

A
80
Q

Wie hoch ist die erwartete Laufzeit des Rand-Select?

A
81
Q

Was ist der Vorteil von Sortieren durch Einfügen?

A

ist vorteilhaft, wenn die Eingabe nahezu sortiert ist

82
Q

Welchen Vorteil hat der Mergesort?

A

eignet sich gut für große Datenbestände auf Sekundärspeichern

83
Q

Was ist die erwartete Laufzeit des randomisierten Verfahrens des Quicksorts?

A

O(n log n)

84
Q

Wie kann ein Quicksort in der Praxis weiter beschleunigt werden?

A

Indem ein rekursiver Aufruf durch eine Iteration ersetzt wird (Endrekursion)

85
Q

Wie viele Vergleichsoperationen benötigt jedes Sortierverfahren im Worst Case?

A
86
Q

Gibt es einen Algorithmus der das i-te größte Element eines Arrays in linearer Laufzeit findet?

A

Ja

87
Q

Beschreib den Select-IDX Algorithmus

A
88
Q

Beschreib den Select-IDX5 Algorithmus

A
89
Q

Wie lautet die Rekurrenzgleichung des Select-Algorithmus?

A
90
Q

Skizziere, wie man k bestimmt

A