Lesson_1 Intro Flashcards

1
Q

Was ist ein Algorithmus?

A

Ein Algorithmus ist eine in der Beschreibung und Ausführung endliche, deterministische und effektive Vorschrift zur Lösung eines Problems, die effizient sein sollte.

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

Was besagt die Church-Turing-These?

A

Die Church-Turing-These besagt, dass die Klasse der Turing-berechenbaren Funktionen mit der Klasse der intuitiv berechenbaren Funktionen übereinstimmt. Sie ist weder beweisbar noch widerlegbar.

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

Was sind die Beurteilungskriterien für Algorithmen?

A
  • Korrektheit: Der Algorithmus muss das richtige Ergebnis liefern.
  • Eindeutigkeit: Bei gleicher Eingabe sollte die gleiche Lösung produziert werden.
  • Laufzeit: Die Zeit, die ein Algorithmus benötigt, um zu einem Ergebnis zu kommen.
  • Speicherbedarf: Der Speicher, den ein Algorithmus zur Ausführung benötigt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Faktoren beeinflussen die Effizienz eines Algorithmus?

A
  • Laufzeit (abhängig von der Problemgröße)
  • Speicherbedarf
  • Art der Eingabe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was bedeutet „Berechenbarkeit“ in der Informatik?

A

Berechenbarkeit beschreibt, ob ein Problem algorithmisch gelöst werden kann, also ob eine Lösung existiert und wie man zu dieser Lösung kommt.

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

Welche Arten von Problemen sind nach der Church-Turing-These nicht berechenbar?

A

Nach der Church-Turing-These gibt es Probleme wie das Halteproblem, das nicht berechenbar ist.

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

Welche Bedeutung hat die Landau-Notation für die Analyse von Algorithmen?

A

Die Landau-Notation (z.B. O(n)) gibt an, wie sich die Laufzeit eines Algorithmus asymptotisch verhält, wenn die Eingabegröße (n) gegen unendlich geht.

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

Was ist der Unterschied zwischen der Landau-Notation O(n) und der Tilde-Notation ∼ f(n)?

A

Die Landau-Notation ignoriert konstante Faktoren und niedrige Ordnungsterme. Die Tilde-Notation bezieht den konstanten Faktor des führenden Terms mit ein.

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

Was bedeutet O(1)?

A

O(1) bezeichnet eine konstante Laufzeit, unabhängig von der Eingabegröße.

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

Nenne ein Beispiel für einen Algorithmus mit quadratischer Komplexität O(n²).

A

Ein Beispiel ist Bubble Sort, wo alle Paare von Elementen miteinander verglichen werden.

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

Was sind die Eigenschaften von MergeSort?

A

MergeSort ist ein rekursiver, stabiler Sortieralgorithmus mit einer Zeitkomplexität von O(n log n) und basiert auf dem Divide-and-Conquer-Prinzip.

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

Wann ist ein Sortieralgorithmus stabil?

A

Ein Sortieralgorithmus ist stabil, wenn er die relative Reihenfolge von Elementen mit gleichen Werten beibehält.

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

Welche Aufgaben können mit Graphenalgorithmen gelöst werden?

A
  • Kürzeste Wege (Dijkstra)
  • Minimale Spannbäume (Kruskal, Prim)
  • Durchsuchen von Graphen (DFS, BFS)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist der Unterschied zwischen Tiefensuche (DFS) und Breitensuche (BFS)?

A

DFS durchsucht einen Graphen in die Tiefe, während BFS in der Breite arbeitet.

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

Was ist eine Hashfunktion und wofür wird sie verwendet?

A

Eine Hashfunktion wandelt eine Eingabe (Schlüssel) in einen Hashwert um, verwendet für schnelle Datensuche in Hash-Tabellen.

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

Was ist ein Greedy-Algorithmus?

A

Ein Greedy-Algorithmus trifft immer die lokal beste Entscheidung, um eine globale Lösung zu finden. Er funktioniert gut bei Problemen mit der Greedy-Eigenschaft.

17
Q

Welche Komplexität hat die naive Matrizenmultiplikation?

A

Die naive Matrizenmultiplikation hat eine Zeitkomplexität von O(n³).

18
Q

Was versteht man unter der Laufzeitkomplexität eines Algorithmus?

A

Unter der Laufzeitkomplexität eines Algorithmus versteht man die Anzahl der Schritte, die der Algorithmus im schlimmsten Fall benötigt, um eine Eingabe mit einer bestimmten Länge 𝑛 n zu bearbeiten.

19
Q

Was ist der Insertion Sort Algorithmus?

A

Der Insertion Sort ist ein einfacher, stabiler Sortieralgorithmus, der das zu sortierende ** Array in zwei Teile unterteilt: einen sortierten und einen unsortierten Teil. Elemente aus dem unsortierten Teil** werden nacheinander entnommen und in den sortierten Teil an der richtigen Position eingefügt.

20
Q

Wie lautet die Laufzeitkomplexität des Insertion Sort im besten Fall?

A

Die Laufzeitkomplexität im besten Fall beträgt 𝑂(𝑛), da der Algorithmus nur dann optimal arbeitet, wenn die Eingabedaten bereits vollständig sortiert sind und keine Verschiebungen erforderlich sind.

21
Q

Wie lautet die Laufzeitkomplexität des Insertion Sort im schlechtesten Fall?

A

Die Laufzeitkomplexität im schlechtesten Fall beträgt 𝑂(𝑛2), da jedes Element im schlimmsten Fall an die erste Position verschoben werden muss, was viele Vergleiche und Verschiebungen erfordert.

22
Q

Wie funktioniert der Bubble Sort Algorithmus?

A

Bubble Sort vergleicht benachbarte Elemente eines Arrays und vertauscht sie, wenn sie in der falschen Reihenfolge sind. Dieser Prozess wird wiederholt, bis keine Vertauschungen mehr nötig sind, was bedeutet, dass das Array sortiert ist.

23
Q

Wie lautet die Laufzeitkomplexität von Bubble Sort?

A
  • im besten Fall O(n)
  • im schlimmsten Fall O(n2)
24
Q

Was ist der Unterschied zwischen Bubble Sort und Insertion Sort?

A

Bubble Sort vergleicht und vertauscht benachbarte Elemente, während Insertion Sort Elemente in die richtige Position im bereits sortierten Teil des Arrays einfügt. Insertion Sort ist oft effizienter bei teilweise sortierten Arrays, während Bubble Sort jedes Mal die gleichen Vergleiche durchführt, unabhängig vom Zustand des Arrays.

25
Q

Was ist der Merge Sort Algorithmus?

A

Merge Sort ist ein Divide-and-Conquer-Algorithmus, der ein Array wiederholt in zwei Hälften teilt, die einzelnen Hälften rekursiv sortiert und dann die sortierten Hälften zu einem vollständig sortierten Array zusammenführt.

26
Q

Wie funktioniert der Merge Sort Algorithmus?

A

Merge Sort teilt das Array in zwei Hälften, sortiert jede Hälfte rekursiv und führt die beiden sortierten Hälften schließlich zusammen. Der Zusammenführungsprozess kombiniert die beiden Teilarrays zu einem sortierten Gesamtarray, indem die kleinsten Elemente der Teilarrays verglichen und nacheinander in ein neues Array eingefügt werden.

27
Q

Wie lautet die Laufzeitkomplexität von Merge Sort im besten, schlechtesten und durchschnittlichen Fall?

A

Die Laufzeitkomplexität von Merge Sort beträgt in allen Fällen O(nlogn), da das Array immer in zwei Hälften geteilt und dann die sortierten Hälften zusammengeführt werden, unabhängig von der Reihenfolge der Eingabe.