Lesson_1 Intro Flashcards
Was ist ein Algorithmus?
Ein Algorithmus ist eine in der Beschreibung und Ausführung endliche, deterministische und effektive Vorschrift zur Lösung eines Problems, die effizient sein sollte.
Was besagt die Church-Turing-These?
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.
Was sind die Beurteilungskriterien für Algorithmen?
- 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.
Welche Faktoren beeinflussen die Effizienz eines Algorithmus?
- Laufzeit (abhängig von der Problemgröße)
- Speicherbedarf
- Art der Eingabe
Was bedeutet „Berechenbarkeit“ in der Informatik?
Berechenbarkeit beschreibt, ob ein Problem algorithmisch gelöst werden kann, also ob eine Lösung existiert und wie man zu dieser Lösung kommt.
Welche Arten von Problemen sind nach der Church-Turing-These nicht berechenbar?
Nach der Church-Turing-These gibt es Probleme wie das Halteproblem, das nicht berechenbar ist.
Welche Bedeutung hat die Landau-Notation für die Analyse von Algorithmen?
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.
Was ist der Unterschied zwischen der Landau-Notation O(n) und der Tilde-Notation ∼ f(n)?
Die Landau-Notation ignoriert konstante Faktoren und niedrige Ordnungsterme. Die Tilde-Notation bezieht den konstanten Faktor des führenden Terms mit ein.
Was bedeutet O(1)?
O(1) bezeichnet eine konstante Laufzeit, unabhängig von der Eingabegröße.
Nenne ein Beispiel für einen Algorithmus mit quadratischer Komplexität O(n²).
Ein Beispiel ist Bubble Sort, wo alle Paare von Elementen miteinander verglichen werden.
Was sind die Eigenschaften von MergeSort?
MergeSort ist ein rekursiver, stabiler Sortieralgorithmus mit einer Zeitkomplexität von O(n log n) und basiert auf dem Divide-and-Conquer-Prinzip.
Wann ist ein Sortieralgorithmus stabil?
Ein Sortieralgorithmus ist stabil, wenn er die relative Reihenfolge von Elementen mit gleichen Werten beibehält.
Welche Aufgaben können mit Graphenalgorithmen gelöst werden?
- Kürzeste Wege (Dijkstra)
- Minimale Spannbäume (Kruskal, Prim)
- Durchsuchen von Graphen (DFS, BFS)
Was ist der Unterschied zwischen Tiefensuche (DFS) und Breitensuche (BFS)?
DFS durchsucht einen Graphen in die Tiefe, während BFS in der Breite arbeitet.
Was ist eine Hashfunktion und wofür wird sie verwendet?
Eine Hashfunktion wandelt eine Eingabe (Schlüssel) in einen Hashwert um, verwendet für schnelle Datensuche in Hash-Tabellen.