Skip to content
Snippets Groups Projects
Commit 78a3281a authored by Maximilian Giller's avatar Maximilian Giller :squid:
Browse files

Adjusted dataset for new color format

parent 34b16aaf
No related branches found
No related tags found
No related merge requests found
Pipeline #57093 failed
{"nodes": [{"id": 0, "name": "Begr\u00fc\u00dfung und Organisatorisches", "description": "Eine Einf\u00fchrung in die Algorithmen und Datenstrukturen", "type": 0, "video": "https://www.ibr.cs.tu-bs.de/courses/ws2122/aud/videos/VL0.mp4"}, {"id": 1, "name": "Rundreise Problem", "description": "Gegeben: Ein Graph $G = (V, E)$ mit Kantenl\u00e4ngen $w_e$, Gesucht: Eine k\u00fcrzeste Rundreise, welche alle Knoten im Graphen einmal besucht und im Startknoten wieder endet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/2_Bsp_Rundreise-Problem.mp4"}, {"id": 2, "name": "Puzzle", "description": "Jeder hat schon einmal ein Puzzle gel\u00f6st, doch wie sieht das aus algorithmischer Sicht aus?", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/3_Bsp_Puzzle.mp4"}, {"id": 3, "name": "Algorithmus-Definition", "description": "Zitat: 'Ein Algorithmus ist eine aus endlich vielen Schritten bestehende eindeutige Handlungsvorschrift zur L\u00f6sung eines Problems oder einer Klasse von Problemen.'-Wikipedia. Dabei wird als Input eine Problembeschreibung gegeben und durch Anwendung des Algorithmus eine fertige L\u00f6sung des Problems ermittelt. Oft spielt die Laufzeit des Algorithmus eine gro\u00dfe Rolle. Sie beschreibt, wie viele einzelne Schritte n\u00f6tig sind um das Problem zu l\u00f6sen, in Abh\u00e4ngigkeit von der Gr\u00f6\u00dfe des Problems.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/4_Def_Algorithmus.mp4"}, {"id": 4, "name": "P und NP", "description": "Die Klassen P und NP teilen algorithmische Probleme in zwei Kategorien auf. Die eine, bei der man mithilfe eines Algorithmus eine L\u00f6sung Pfinden kann (P) und eine zweite, bei der bisher nur das NachPr\u00fcfen einer existierenden L\u00f6sung in polynomieller gelingt (NP). Wenn es allerdings keine L\u00f6sung gibt, so l\u00e4sst sich das bei Problemen der Klasse NP nur schlecht beweisen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/6_Def_P-und-NP.mp4"}, {"id": 5, "name": "Einf\u00fchrung des Algorithmusbegriffs", "description": "In dieser Vorlesung wird der Begriff 'Algorithmus' definiert und erkl\u00e4rt.", "type": 0, "video": "https://www.ibr.cs.tu-bs.de/courses/ws2122/aud/videos/VL1.mp4"}, {"id": 6, "name": "Datenstrukturen", "description": "Eine Datenstruktur erlaubt es, die f\u00fcr eine Aufgabe notwendigen Informationen geeignet zu repr\u00e4sentieren und den Zugriff und die Verwaltung w\u00e4hrend der Bearbeitung in effizienter Weise zu erm\u00f6glichen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/8_Def_Datenstrukturen.mp4"}, {"id": 7, "name": "Organisation und Pseudocode", "description": "In dieser \u00dcbung haben wir noch einmal organisatorische Dinge besprochen und uns mit dem Thema Pseudocode auseinandergesetzt.", "type": 3, "video": "https://www.ibr.cs.tu-bs.de/courses/ws2122/aud/videos/U0.mp4"}, {"id": 8, "name": "Pseudocode", "description": "Pseudocode ist eine Art Algorithmen theoretisch zu formulieren, ohne dabei auf die Besonderheiten einer Programmiersprache achten zu m\u00fcssen. Das Ziel ist es Algorithmen klar und eindeutig darzustellen. Da Pseudocode meist \u00e4hnliche Schl\u00fcsselw\u00f6rter wie tats\u00e4chliche Programmiersprachen nutzt, l\u00e4sst sich der entspehende Code oft einfach in eine tats\u00e4chliche Implementierung \u00fcbersetzen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/9_Def_Pseudocode.mp4"}, {"id": 9, "name": "Einleitung in die Graphen", "description": "Eine Einleitung in die Welt der Graphen am wohl bekanntesten Beispiel, dem Haus des Nikolaus.", "type": 0}, {"id": 10, "name": "Haus des Nikolaus", "description": "Jeder kennt das Haus vom Nikolaus, doch wie wird es gemalt? Wo setzt man den Stift an und wo wieder ab?", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/11_Bsp_Haus-des-Nikolaus.mp4"}, {"id": 11, "name": "Eulertouren", "description": "Ein Eulerweg ist ein Weg in einem Graphen, welcher alle Kanten nutzt. Eine Eulertour kehrt dar\u00fcber hinaus auch zum Startknoten zur\u00fcck.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/12_Def_Eulertouren.mp4"}, {"id": 12, "name": "Graphenbegriffe", "description": "Ein Graph besteht aus Knoten und Kanten, doch was parallele Kanten, Schleifen, (geschlossene) Wege, Pfade, Kreise, Eulerwege/-touren, sowie Hamiltonpfade und -kreise sind wird in dieser Vorlesung noch einmal genau definiert.", "type": 0}, {"id": 13, "name": "Graph", "description": "Um mit Graphen arbeiten zu k\u00f6nnen ist eine formale Definition besonders wichtig. Diese gibt es in diesem Video.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/14_Def_Graph.mp4"}, {"id": 14, "name": "Wege in Graphen", "description": "Eine Kantenfolge $W$ in einem Graphen $G$ hei\u00dft Weg, wenn sich keine Kante darin wiederholt und geschlossener Weg (Tour), wenn man am Ende wieder am Startknoten ankommt. Wiederholt sich kein Knoten spricht man von einem Pfad. Ein Kreis ist ein geschlossener Pfad. Bei einem Eulerweg/ einer Eulertour werden alle Kanten des Graphen genutzt. Ein Hamiltonpfad/kreis nutzt hingegen alle Knoten.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/15_Def_Wege-in-Graphen.mp4"}, {"id": 15, "name": "Beweistechniken Teil 1", "description": "In der Mathematik und auch in der Algorithmik spielen Beweise immer wieder eine gro\u00dfe Rolle. Es geht darum Aussagen zu belegen, zu widerlegen oder auf bestimmte Elemente anzuwenden. Dazu gibt es verschiedene Beweistechniken, welche ihr hier finden k\u00f6nnt:", "type": 3}, {"id": 16, "name": "Direkter Beweis", "description": "Aussagen oft in der Form $A \\Rightarrow B$. Unterscheide zwischen Voraussetzung ($A$) und Schlussfolgerung ($B$). Wird die Schlussfolgerung durch eine logische Folgerungskette aus den Voraussetzungen hergeleitet, so spricht man von einem direkten Beweis.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16a_Bsp_Direkter-Beweis.mp4"}, {"id": 17, "name": "Kontraposition", "description": "Ein direkter Beweis kann schwierig sein, sodass sich die Kontraposition anbietet. Es gilt $(A \\Righrarrow B) \\Leftrightarrow (-B \\Rightarrow -A)$. Wir k\u00f6nnen also Annehmen, dass $B$ nicht gilt und folgern daraus, dass auch $A$ nicht gelten kann.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16b_Bsp_Kontraposition.mp4"}, {"id": 18, "name": "Widerspruchsbeweis", "description": "Mathematische Aussagen sind entweder wahr oder falsch. Um eine wahre Aussage zu beweisen, k\u00f6nnen wir zeigen, dass die Negation nicht gilt. Diese Beweistechnik nennt man Widerspruchsbeweis.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16c_Bsp_Widerspruchsbeweis.mp4"}, {"id": 19, "name": "\u00c4quivalenzbeweis", "description": "Aussagen der Form A <=> B k\u00f6nnen bewiesen werden, indem sowohl<br>A => B und B => A gezeigt werden.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16d_Bsp_\u00c4quivalenzbeweis.mp4"}, {"id": 20, "name": "Bedingungen f\u00fcr Eulertouren", "description": "In dieser Vorlesung werden notwendige Bedingungen f\u00fcr Eulertouren erleutert. Zus\u00e4tzlich wird das Kapitel 2 noch einmal zusammengefasst und es werden Algorithmen eingef\u00fchrt um die uns bisher bekannten Probleme zu l\u00f6sen.", "type": 0}, {"id": 21, "name": "Algorithmus Wegfindung", "description": "Dieser Algorithmus (2.7) erh\u00e4lt als Input einen Graphen G mit h\u00f6chstens zwei ungeraden Knoten und liefert als Output einen Weg in G", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/18_Alg_Wegfindung.mp4"}, {"id": 22, "name": "Algorithmus von Hierholzer", "description": "Dieser Algorithmus (2.8) erh\u00e4lt als Input einen zusammenh\u00e4ngenden Graphen G mit h\u00f6chstens zwei ungeraden Knoten und liefert als Output einen Eulerweg, bzw. eine Eulertour in G. Dazu wird auch Algorithmus 2.7 zum Finden von Wegen in G verwendet.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/19_Alg_Hierholzer.mp4"}, {"id": 23, "name": "Algorithmus von Fleury", "description": "Dieser Algorithmus(2.13) erh\u00e4lt als Input einen Graphen G mit h\u00f6chstens 2 ungeraden Knoten und liefert als Output einen Weg in G. Der Algorithmus hat als Grundlage Algorithmus 2.7 zum Finden von Wegen. Auch l\u00e4sst sich zeigen, dass man mit diesem Algorithmus eine Eulertour/einen Eulerweg finden kann.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/20_Alg_Fleury.mp4"}, {"id": 24, "name": "Anwendung von Graphen", "description": "In dieser Vorlesung geht es um den Einsatzzweck von Graphen und es wird am Beispiel der Erd\u00f6s- und der Kevin Bacon Zahl gezeigt, welche Zusammenh\u00e4nge dargestellt werden k\u00f6nnen.", "type": 0}, {"id": 25, "name": "Beweistechniken Teil 2", "description": "In dieser \u00dcbung geht es um die Beweistechnik der vollst\u00e4ndigen Induktion. Diese ist die wohl meist benutzte Beweistechnik in der Algorithmik. Auch werden Anwendungsbeispiele wie z.B. die Gau\u00df'sche Summenformel oder der Zusammenhang in Graphen erl\u00e4utert.", "type": 3}, {"id": 26, "name": "Graphenscan", "description": "In dieser Vorlesung wird der Graphenscanalgorithmus vorgestellt um Zusammenhangskomponenten in Graphen zu finden.", "type": 0}, {"id": 27, "name": "Algorithmus Graphenscan", "description": "Dieser Algorithmus (3.7) erh\u00e4hlt als Input einen Graphen G = (V,E) und einen Knoten s darin und liefert als Output eine Knotenmenge Y aus V, die von s aus erreichbar ist, sowie eine Kantenmenge T aus E, welche die Erreichbarkeit sicherstellt", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/25_Alg_Graphenscan.mp4"}, {"id": 28, "name": "Datenstrukturen Teil 1", "description": "In dieser Vorlesung werden die Datenstrukturen Warteschlange (First In - First Out) und Stapel (Last In - First Out) vorgestellt. Au\u00dferdem geht es um ihre Rolle f\u00fcr Algorithmen und wie man sie implementieren kann. Das ganze wird am Beispiel des Graphscan Algorithmus gezeigt und somit werden auch Breiten- und Tiefensuche eingef\u00fchrt.", "type": 0}, {"id": 29, "name": "Warteschlange", "description": "Eine Warteschlange ist eine Datenstruktur, welche nach dem Prinzip 'First In - First Out' arbeitet. Man findet sie auch im allt\u00e4glichen Leben oft wieder, wenn man sich beispielsweise an der Kasse anstellen muss. Der Kunde der zuerst da war, wir auch zuerst bedient.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/27_Def_Warteschlange.mp4"}, {"id": 30, "name": "Stapel", "description": "Ein Stapel ist eine Datenstruktur, welche nach dem Prinzip 'Last In - First Out' arbeitet. Im allt\u00e4glichen Leben findet man diese Form der Datenstruktur beim Geschirr abwaschen, man stapelt die Teller und der Teller der zuletzt dreckig wurde wird als erstes gereinigt, da man die Teller von oben herunter nimmt.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/28_Def_Stapel.mp4"}, {"id": 31, "name": "Breitensuche", "description": "Die Breitensuche ist im Prinzip der Graphscan Algorithmus, ausgef\u00fchrt mithilfe einer Warteschlange als Datenstruktur. Sie breitet sich aus wie eine Welle.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/29_Alg_Breitensuche.mp4"}, {"id": 32, "name": "Tiefensuche", "description": "Die Breitensuche ist im Prinzip der Graphscan Algorithmus, ausgef\u00fchrt mithilfe eines Stapels als Datenstruktur. Dabei werden eher einzelne Pfade gelaufen.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/30_Alg_Tiefensuche.mp4"}, {"id": 33, "name": "Datenstrukturen Teil 2", "description": "In dieser Vorlesung geht es einerseits um die Anwendung der Breitensuche, andererseits werden noch 2 weitere Datenstrukturen eingef\u00fchrt: Die Inzidenz/-Adjazenzmatrix, sowie die Kantenliste.", "type": 0}, {"id": 34, "name": "Inzidenz/-Adjazenzmatrix", "description": "In einer Inzidenzmatrix wird mithilfe von 1en und 0en dargestellt, welche Knoten mit welchen Kanten inzident (zusammentreffend) sind. Bei einer Adjazenzmatrix wird dargestellt, welche Knoten adjazent (durch eine Kante verbunden) sind.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/32_Def_Inzidenz-Adjazenzmatrix.mp4"}, {"id": 35, "name": "Kanten-/Adjazenzliste", "description": "Eine Kantenliste ist eine Liste bestehend aus eintr\u00e4gen der Form {vx, vy}, welche bedeuten, dass eine Kante zwischen vx und vy im Graphen existiert.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/33_Def_Kantenliste.mp4"}, {"id": 36, "name": "Wachstum/O-Notation", "description": "In dieser Vorlesung wird noch einmal mit den Adjazenz- und Kantenlisten abgeschlossen. Au\u00dferdem schauen wir uns einmal das Wachstum von Funktionen an und definieren und die O-Notation um damit zu arbeiten.", "type": 0}, {"id": 37, "name": "O-Notation", "description": "Die O-Notation wird genutzt um das Wachstum von Funktionen abzusch\u00e4tzen. Damit k\u00f6nnen Gr\u00f6\u00dfenordnungen und Wachstumsverhalten beschrieben werden.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/35_Def_O-Notation.mp4"}, {"id": 38, "name": "Graphscan \u00dcbung", "description": "Simple Anwengung des Graphscan Algorithmus, einmal als Breiten- und als Tiefensuche. Wann welcher Algorithmus besser geeignet ist wird in dieser \u00dcbung erkl\u00e4rt.", "type": 3}, {"id": 39, "name": "Breitensuche Beispiel", "description": "Ein Beispiel f\u00fcr die Anwendung des Graphenscan Algorithmus in Form der Breitensuche mithilfe einer Warteschlange als Datenstruktur.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/36a_Bsp_Breitensuche.mp4"}, {"id": 40, "name": "Tiefensuche Beispiel", "description": "Ein Beispiel f\u00fcr die Anwendung des Graphenscan Algorithmus in Form der Tiefensuche mithilfe eines Stapels als Datenstruktur.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/36b_Bsp_Tiefensuche.mp4"}, {"id": 41, "name": "Wachstum", "description": "Die O-Notation wird genutzt um das Wachstum von Funktionen abzusch\u00e4tzen. In dieser \u00dcbung werden Zusammenh\u00e4nge zwischen der Gr\u00f6\u00dfe des Inputs und dem Wachstum, sowie Relationen zwischen Laufzeitklassen n\u00e4her beleuchtet. Auch wird die O-Notation an verschiedenen Beispielen erkl\u00e4rt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/36c_Bsp_O-Notation.mp4"}, {"id": 42, "name": "Wiederholung: Suche in Graphen", "description": "Noch einmal ein R\u00fcckblick auf alles, was bisher in 'Kapitel 3: Suche in Graphen' passiert ist. ", "type": 0}, {"id": 43, "name": "Eigenschaften von DFS und BFS", "description": "In dieser Vorlesung betrachten wir die Breiten- und Tiefensuche im Hinblick auf ihre Laufzeit. Dabei wird anschaulich, wie die Algorithmen arbeiten, wann man sie am besten nutzen sollte und wie man Laufzeiten beweisen kann.", "type": 0}, {"id": 44, "name": "Induktionsbeweis Beispiel", "description": "Ein Beispiel, bei dem der Induktionsbeweis auch in der Graphentheorie zum Einsatz kommt. Weitere Beispiele dieser Art finden sich in Vorlesung 12.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/40_Bsp_Induktionsbeweis.mp4"}, {"id": 45, "name": "Graphscan Adjazenzliste", "description": "Hier wird zuerst ein Graph in der Form einer Adjazenzliste dargestellt und dann mithilfe dieser als Datenstruktur der Graphscan Algorithmus durchgef\u00fchrt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/42_Bsp_Graphenscan-Adjazenzliste.mp4"}, {"id": 46, "name": "Verschiedene dynamische Datenstrukturen", "description": "In dieser Vorlesung beginnen wir dynamische Datenstrukturen einzuf\u00fchren. Es werden Stapel, Warteschlangen und verkettete Listen vorgestellt. Au\u00dferdem besch\u00e4ftigen wir uns mit bin\u00e4rer Suche.", "type": 0}, {"id": 47, "name": "Verkettete Liste", "description": "Eine verkettete Liste ist eine dynamische Datenstruktur. Dabei werden f\u00fcr die einzelnen Elemente jeweils Vorg\u00e4nger und Nachfolger mit gespeichert. Der Vorteil hierbei ist, dass neue Eintr\u00e4ge \u00fcberall eingef\u00fcgt werden k\u00f6nnen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/44_Def_Verkettete-Listen.mp4"}, {"id": 48, "name": "Bin\u00e4re Suche", "description": "Dieser Algorithmus (4.1) erh\u00e4lt als Input einen sortierten Array mit Eintr\u00e4gen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS und liefert als Output die Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/45_Alg_Bin\u00e4re-Suche.mp4"}, {"id": 49, "name": "Bin\u00e4re Suche Beispiel", "description": "Der Algorithmus f\u00fcr die bin\u00e4re Suche einmal an zwei Beispielen angewandt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/46_Bsp_Bin\u00e4re_Suche.mp4"}, {"id": 50, "name": "Bin\u00e4re Suchb\u00e4ume", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns genauer mit bin\u00e4ren Suchb\u00e4umen und den darauf anwendbaren Operationen, wie Maximum, Minimum, einf\u00fcgen und l\u00f6schen von Knoten, sowie mit der bin\u00e4ren Suche.", "type": 0}, {"id": 51, "name": "Bin\u00e4rer Suchbaum", "description": "In dieser Definition werden die Begriffe 'gerichteter Graph/Baum', 'H\u00f6he eines Baumes', '(voller/vollst\u00e4ndiger) bin\u00e4rer Baum', 'Blatt eines Baumes', 'Teilbaum eines Knotens' und 'bin\u00e4rer Suchbaum' definiert und erkl\u00e4rt.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/49_Def_Bin\u00e4rer-Suchbaum.mp4"}, {"id": 52, "name": "Grundoperationen Suchbaum", "description": "Minimum/Maximum finden, Suche im Baum, Nachfolger finden, Einf\u00fcgen und L\u00f6schen sind die Grundoperationen, welche auf bin\u00e4re Suchb\u00e4ume angewendet werden k\u00f6nnen. Und hier findet ihr die Algorithmen dazu.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50_Alg_Bin\u00e4rer-Suchbaum-Grundoperationen.mp4"}, {"id": 53, "name": "Bin\u00e4rer Suchbaum Min/Max", "description": "In einem bin\u00e4ren Suchbaum lassen sich leicht das Minimum, sowie das Maximum finden. Wie das funktioniert, kannst du dir hier noch einmal anschauen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50a_Bsp_Bin\u00e4rer-Suchbaum-Min-Max.mp4"}, {"id": 54, "name": "Bin\u00e4rer Suchbaum Suche", "description": "Auch die Suche in einem bin\u00e4ren Suchbaum ist recht simpel, wie der Name schon verr\u00e4t. Wie das genau funktioniert siehst du hier.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50b_Bsp_Bin\u00e4rer-Suchbaum-Suche.mp4"}, {"id": 55, "name": "Bin\u00e4rer Suchbaum Nachfolger", "description": "Oft kann es helfen den Nachfolger eines Schl\u00fcsselwertes in einem bin\u00e4ren Suchbaum zu finden (Zum Beispiel beim L\u00f6schen von Elementen). Wie das geht kannst du hier nachschauen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50c_Bsp_Bin\u00e4rer-Suchbaum-Nachfolger.mp4"}, {"id": 56, "name": "Bin\u00e4rer Suchbaum Einf\u00fcgen", "description": "Das Einf\u00fcgen in einen bin\u00e4ren Suchbaum ist recht simpel, man muss allerdings darauf achten, dass die Struktur erhalten bleibt. Wie das geht siehst du hier.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50d_Bsp_Bin\u00e4rer-Suchbaum-Einf\u00fcgen.mp4"}, {"id": 57, "name": "Bin\u00e4rer Suchbaum L\u00f6schen", "description": "Das L\u00f6schen von Elementen kann sehr einfach sein, es kann sich jedoch auch als sehr komplex entpuppen, je nachdem wie viele Kinder der zu l\u00f6schende Knoten hat. Solltest du dir hier noch unsicher sein schau dir das Video dazu an.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50e_Bsp_Bin\u00e4rer-Suchbaum-L\u00f6schen.mp4"}, {"id": 58, "name": "AVL-B\u00e4ume", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit speziellen bin\u00e4ren Suchb\u00e4umen, den AVL-B\u00e4umen und ihren Eigenschaften.", "type": 0}, {"id": 59, "name": "AVL-Baum", "description": "Ein bin\u00e4rer Suchbaum ist h\u00f6henbalanciert, wenn sich f\u00fcr jeden Knoten v die H\u00f6he der beiden Kinder von v um h\u00f6chstens 1 unterscheidet. Ein h\u00f6henbalancierter Suchbaum hei\u00dft auch AVL-Baum.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/52_Def_AVL-Baum.mp4"}, {"id": 60, "name": "dyn. Operationen auf AVL-B\u00e4umen", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit dem Erhalt der AVL-Eigenschaft eines bin\u00e4ren Suchbaumes bei Einf\u00fcge- und L\u00f6schoperationen. Au\u00dferdem werfen wir einen Blick auf die Fibonacci-Zahlen.", "type": 0}, {"id": 61, "name": "AVL-Rotation", "description": "Dieser Algorithmus (4.9) erh\u00e4lt als Input einen Knoten x eines bin\u00e4ren Suchbaumes T, Vaterknoten y, Gro\u00dfvaterknoten z und liefert als Output den bin\u00e4ren Suchbaum T nach Umstrukturierung mit x, y, z.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/54_Alg_AVL-Restructure.mp4"}, {"id": 62, "name": "Fibonacci-Zahlen", "description": "Die Fibonacci-Zahlen sind eine rekursiv definierte Zahlenfolge, bei der sich eine Zahl aus der Summe ihrer zwei Vorg\u00e4nger ergibt. Dabei sind die ersten beiden Elemente gegeben als 1. Die Fibonacci-Zahlen finden sich \u00fcberall in der Natur wieder und haben nicht wenig mit unserer Auffassung von Sch\u00f6nheit zu tun.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/55_Def_Fibonacci-Zahlen.mp4"}, {"id": 63, "name": "Induktionsbeweis-\u00dcbung", "description": "In dieser \u00dcbung schauen wir uns eine Beweistechnik an: die vollst\u00e4ndige Induktion.", "type": 3}, {"id": 64, "name": "Induktionsbeweise", "description": "Eine Reihe von Beispielen zum Thema Induktionsbeweis. Es wird in verschiedenen Szenarien gezeigt, wie man Den Induktionsanfang erh\u00e4lt, damit die Induktionsbehauptung aufstellt und diese dann nutzt um den Induktionsschritt durchzuf\u00fchren.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/57_Bsp_Induktionsbeweise.mp4"}, {"id": 65, "name": "Fehler bei Induktionsbeweisen", "description": "In diesem Video wird einmal auf beliebte Fehler bei Induktionsbeweisen eingegangen, welche man unbedingt vermeiden sollte.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/58_Bsp_Fehler-bei-Induktionsbeweisen.mp4"}, {"id": 66, "name": "\u00dcbung dynamische Datenstrukturen", "description": "In dieser \u00dcbung betrachten wir noch einmal verschiedene Aspekte von Datenstrukturen und stellen \u00dcberlegungen an, wie die Auswahl von Datenstrukturen die Laufzeit von Algorithmen beeinflussen kann.", "type": 3}, {"id": 67, "name": "Laufzeit Hierholzer Algorithmus", "description": "Wir betrachten einmal die Laufzeit des Hierholzer-Algorithmus (2.8) und im Zusammenhang damit auch verkettete Listen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/59a_Bsp_Laufzeit-Hierholzer.mp4"}, {"id": 68, "name": "Suchbaummerge", "description": "In diesem Teil der \u00dcbung betrachten wir einmal das Verschmelzen von bin\u00e4ren Suchb\u00e4umen und dessen Laufzeit.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/59b_Bsp_Suchbaummerge.mp4"}, {"id": 69, "name": "Beispiel AVL-Baum-Operationen", "description": "Wir schauen uns noch einmal genauer die AVL-B\u00e4ume an und was man damit machen kann. Insbesondere auch die Operationen L\u00f6schen und Einf\u00fcgen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/59c_Bsp_AVL-Baum-Operationen.mp4"}, {"id": 70, "name": "Dynamische Datenstrukturen 2", "description": "In dieser Vorlesung schauen wir noch einmal auf das bisher in Kapitel 4 gelernte zur\u00fcck. Au\u00dferdem geben wir einen \u00dcberblick \u00fcber einige weitere dynamische Datenstrukturen wie Rot-Scharz-B\u00e4umme, B-B\u00e4ume und Heaps.", "type": 0}, {"id": 71, "name": "Rot-Schwarz-B\u00e4ume", "description": "Ein bin\u00e4rer Suchbaum hei\u00dft Rot-Schwarz-Baum, wenn er die folgenden Eigenschaften erf\u00fcllt:<br>1. Jeder Knoten ist entweder rot oder schwarz.<br>2. Die Wurzel ist schwarz.<br>3. Jedes Blatt (NIL) ist schwarz.<br>4. Wenn ein Knoten rot ist, sind seine beiden Kinder schwarz.<br>5. F\u00fcr jeden Knoten enthalten alle Pfade nach unten zu einem Blatt des Teilbaumes die gleiche Anzahl schwarzer Knoten.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/61_Def_Rot-Schwarz-B\u00e4ume.mp4"}, {"id": 72, "name": "B-B\u00e4ume", "description": "B-B\u00e4ume sind bin\u00e4re Suchb\u00e4ume, welche f\u00fcr externen Speicher (HDDs) optimiert sind. Dabei wird die H\u00f6he des Baumes minimiert und es werden den Knoten mehr Schl\u00fcssel zugewiesen.<br>Mehr dazu in Cormen, Kapitel 18 oder der Vorlesung RDB 2.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/62_Def_B-B\u00e4ume.mp4"}, {"id": 73, "name": "Heaps", "description": "Ein gerichteter bin\u00e4rer Baum hei\u00dft bin\u00e4rer Min/Max-Heap, wenn jeder Knoten einen Schl\u00fcssel hat, alle Ebenen au\u00dfer der 'letzten' genau 2 Knoten haben, auf der 'letzten' Ebene die linken n-(2^h)+1 Positionen besetzt sind und jeder Schl\u00fcssel eines Knotens h\u00f6chstens/mindestens so gro\u00df ist wie die seiner Kinder.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/63_Def_Heaps.mp4"}, {"id": 74, "name": "Einf\u00fchrung in das Sortieren", "description": "In dieser Vorlesung geben wir eine Einf\u00fchrung in das Oberthema Sortieren. Wir stellen au\u00dferdem einen Sortieralgorithmus mit dem Namen Mergesort vor und stellen grundlegende \u00dcberlegungen zur Laufzeit von Sortieralgorithmen an.", "type": 0}, {"id": 75, "name": "Merge-Sort", "description": "Dieser Algorithmus (5.1) erh\u00e4lt als Input ein Subarray von A=[1,...,n], der bei Index p beginnt und bei Index r endet, d.h. A[p,...,r] und liefert als Output ein sortiertes Subarray. Wichtig ist daf\u00fcr auch die Subroutine (5.2), welche als Input zwei sortierte Subarrays von A=[1,...,n], d.h. A[p,...,q] und A[q+1,...,r] erh\u00e4lt und als Output das sortierte Subarray A[p,...,r] liefert.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/65_Alg_Merge-Sort.mp4"}, {"id": 76, "name": "Sortier-Laufzeitschranken", "description": "In dieser Vorlesung leiten wir konkrete Laufzeitschranken f\u00fcr das Problem des Sortierens einer Liste von Zahlen her. Zudem machen wir uns Gedanken \u00fcber das L\u00f6sen von Rekursionsgleichungen.", "type": 0}, {"id": 77, "name": "Permutation", "description": "Eine Permutation P ist eine Umsortierung von n Objekten.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/67_Def_Permutation.mp4"}, {"id": 78, "name": "Erzeugende Funktionen", "description": "Erzeugende Funktionen k\u00f6nnen genutzt werden um Rekursionen zu l\u00f6sen. Wie das genau aussieht wird an einem simplen Beispiel hier einmal angef\u00fchrt.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/68_Def_erzeugende-Funktionen.mp4"}, {"id": 79, "name": "Erzeugende Funktionen/Mastertheorem", "description": "In dieser Vorlesung besprechen wir weitere Details zu erzeugenden Funktionen und f\u00fchren das Master-Theorem ein.", "type": 0}, {"id": 80, "name": "erzeugende Funktionen Fibonacci-Zahlen", "description": "In diesem Beispiel wird einmal die erzeugende Funktion der Fibonacci-Zahlen hergeleitet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/70_Bsp_Erzeugende-Funktionen-Fibonacci.mp4"}, {"id": 81, "name": "Master-Theorem", "description": "Das Master-Theorem bietet eine schnelle L\u00f6sung f\u00fcr die Frage, in welcher Laufzeitklasse eine gegebene rekursiv definierte Funktion liegt. Dies funktioniert leider nur, solange einer der drei F\u00e4lle des Theorems auf die Funktion angewandt werden kann, ansonsten liefert das Theorem keine Aussage.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/71_Def_Master-Theorem.mp4"}, {"id": 82, "name": "Master-Theorem Beispiele", "description": "Einige Beispiele, an denen das Master-Theorem und seine Funktion noch einmal verdeutlicht wird.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/72_Bsp_Master-Theorem-Beispiele.mp4"}, {"id": 83, "name": "Sortieralgorithmen und Master-Theorem", "description": "Wir betrachten ein weiteres Beispiel f\u00fcr Mergesort und leiten erneut die Laufzeit des Sortieralgorithmus her, indem das Master-Theorem benutzt wird. Au\u00dferdem betrachten wir einen weiteren Sortieralgorithmus: Heapsort.", "type": 3}, {"id": 84, "name": "Merge-Sort Beispiel", "description": "Hier wird der Merge-Sort Algorithmus einmal mit einem Beispiel komplett durchgef\u00fchrt und die Laufzeit des Algorithmus betrachtet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/74_Bsp_Merge-Sort-Beispiel.mp4"}, {"id": 85, "name": "Master-Theorem Beispiel", "description": "3 weitere Beispiele, welche dabei helfen das Master-Theorem zu verstehen und anzuwenden.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/75_Bsp_Master-Theorem-Beispiel.mp4"}, {"id": 86, "name": "Max-Heaps", "description": "Hier wir aufgezeigt, wie man mithilfe eines Algorithmus Max-Heaps bildet. ", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/76_Alg_Max-Heaps.mp4"}, {"id": 87, "name": "Max-Heaps Anwendung", "description": "Hier wird der Algorithmus aus der \u00dcbung 6 zum Erstellen eines Max-Heaps einmal an einem Beispiel angewandt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/77_Bsp_Max-Heaps-Anwendung.mp4"}, {"id": 88, "name": "Heapsort", "description": "Heapsort ist ein Algorithmus bei dem mithilfe von Max-Heaps eine Reihe von Elementen sortiert werden kann. Der Algorithmus hat dabei eine Laufzeit von O(n log n), wie auch in \u00dcbung 6 bewiesen wird.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/78_Alg_Heapsort.mp4"}, {"id": 89, "name": "nichtlineare Rekursionen (Exkurs)", "description": "In dieser Vorlesung haben wir einen Exkurs in die nichtlineare Rekursion gemacht.", "type": 0}, {"id": 90, "name": "logistische Rekursion", "description": "Logistische Rekursion bezeichnet ein Wachstum proportional zu einer Gr\u00f6\u00dfe. Dabei betrachtet man beispielsweise eine Bev\u00f6lkerung, welche zwar durch Fruchtbarkeit immer weiter w\u00e4chst, aber beispielsweise durch Tod auch wieder im Wachstum beschr\u00e4nkt wird.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/80_Def_Logistische-Rekursion.mp4"}, {"id": 91, "name": "Mandelbrot-Menge", "description": "Die Mandelbrot-Menge, benannt nach Beno\u00eet Mandelbrot, ist eine Menge in den komplexen Zahlen. Interpretiert man sie als geometrische Figur, so ergibt sich ein Fraktal, welches im allgemeinen Sprachgebrauch auch als Apfelm\u00e4nnchen bekannt ist.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/81_Def_Mandelbrot-Menge.mp4"}, {"id": 92, "name": "Fraktale", "description": "Ein Fraktal beschreibt nat\u00fcrliche oder k\u00fcnstliche Gebilde oder geometrische Muster und ist ein von Beno\u00eet Mandelbrot gepr\u00e4gter Begriff. - Wikipedia", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/82_Def_Fraktale.mp4"}, {"id": 93, "name": "Zellul\u00e4re Automaten", "description": "Zellul\u00e4re oder auch zellulare Automaten dienen der Modellierung r\u00e4umlich diskreter dynamischer Systeme, wobei die Entwicklung einzelner Zellen zum Zeitpunkt t+1 prim\u00e4r von den Zellzust\u00e4nden in einer vorgegebenen Nachbarschaft und vom eigenen Zustand zum Zeitpunkt t abh\u00e4ngt. - Wikipedia", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/83_Def_Zellul\u00e4re-Automaten.mp4"}, {"id": 94, "name": "Game of Life", "description": "Das 'Game of Life' ist das wohl bekannteste Beispiel eines zellul\u00e4ren Automaten. ", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/84_Bsp_Game-of-Life.mp4"}, {"id": 95, "name": "Einf\u00fchrung von Quick-Sort", "description": "In dieser Vorlesung kehren wir zur\u00fcck zu Sortieralgorithmen und stellen den Quicksort-Algorithmus vor.", "type": 0}, {"id": 96, "name": "Quick-Sort", "description": "Dieser Algorithmus (5.14) erh\u00e4lt als Input ein Subarray von A=[1,...,n], der bei Index p beginnt und bei Index r endet, d.h. A[p,...,r] und liefert als Output einen sortierten Subarray. Dabei ist auch Subroutine 5.15 wichtig, welche als Input ein Subarray von A=[1,...,n], d.h. A[p,...,r] erh\u00e4lt und als Output zwei Subarrays A[p,...,q-1] und A[q+1,...,r] mit A[i]\u2264A[q] und A[q]<A[j] f\u00fcr i=p,...,q-1 und j=q+1,...,r liefert.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/86_Alg_Quick-Sort.mp4"}, {"id": 97, "name": "Laufzeit von Quick-Sort", "description": "Die Laufzeit des Quick-Sort Algorithmus l\u00e4sst sich mithilfe vom Master-Theorem ermitteln. Dazu betrachten wir die 3 F\u00e4lle best-case, average-case und worst-case f\u00fcr den Algorithmus.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/87_Bsp_Quick-Sort-Laufzeit.mp4"}, {"id": 98, "name": "Mediane", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit Medianen.", "type": 0}, {"id": 99, "name": "Standortprobleme", "description": "Was ist der optimale Standort f\u00fcr beispielsweise ein Amazon-Lagerhaus? Idee: Die durchschnittliche Distanz zu den zu beliefernden Geb\u00e4uden minimieren. In Amerika ist dies leicht umgesetzt mit der sogenannten Manhatten-Distanz. Dieses Problem ist die Einf\u00fchrung in das Thema der Mediane.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/89_Def_Standortprobleme.mp4"}, {"id": 100, "name": "Median (diskret)", "description": "Der Rank k eines Elements x (auch 'k-tes Element') ist definiert durch |{y \u2208 X |y<=x}| = k. Also die Anzahl der Elemente, welche kleiner oder gleich x sind. Speziell hei\u00dft x Median, wenn er das [n/2]-te Element ist. [n/2] wird dabei abgerundet.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/90_Def_Median-diskret.mp4"}, {"id": 101, "name": "Median (kontinuierlich)", "description": "Der kontinuierliche Median hat als Eigenschaft, dass das sowohl Integral bis zum Median, als auch ab dem Median gr\u00f6\u00dfer-gleich 1/2 ist.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/91_Def_Median-kontinuierlich.mp4"}, {"id": 102, "name": "Sortieralgorithmen Sonderf\u00e4lle", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit Sonderf\u00e4llen f\u00fcr Sortieralgorithmen, durch die Sortieren in linearer Zeit erm\u00f6glicht wird. Dabei werfen wir einen n\u00e4heren Blick auf die Sortierverfahren Countingsort und Radixsort.", "type": 0}, {"id": 103, "name": "Counting-Sort", "description": "Dieser Algorithmus (5.14) erh\u00e4lt als Input ein Array von A=[1],...,A[n] mit Schl\u00fcsselwerten aus {1,\u2026, k} und liefert als Output eine sortierte Kopie B[1],\u2026,B[n] von [1],...,A[n].", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/93_Alg_Counting-Sort.mp4"}, {"id": 104, "name": "Radix-Sort", "description": "Dieser Algorithmus (5.18) erh\u00e4lt als Input n Zahlen mit je d Ziffern, die k verschiedene Werte annehmen k\u00f6nnen, [1],...,A[n] und liefert als Output einen sortierten Array. Dabei geht Radix-Sort im Gegensatz zu anderen Sortieralgorithmen ziffernweise vor.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/94_Alg_Radix-Sort.mp4"}, {"id": 105, "name": "Quick-Sort, Mediane, kd-B\u00e4ume", "description": "In dieser \u00dcbung schauen wir uns noch einmal das Sortierverfahren Quicksort an und sprechen \u00fcber die Berechnung von Medianen. Au\u00dferdem schauen wir uns mit den kd-B\u00e4umen eine spezielle Datenstruktur f\u00fcr mehrdimensionale Daten an.", "type": 3}, {"id": 106, "name": "Quick-Sort Beispiel", "description": "In diesem Beispiel wird die Funktionsweise von Quick-Sort, sowie die Laufzeit betrachtet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/96_Bsp_Quick-Sort-Beispiel.mp4"}, {"id": 107, "name": "Mediane Beispiel", "description": "In diesem Teil der \u00dcbung schauen wir uns noch einmal genauer an, was Mediane sind, wie man sie algorithmisch bestimmen kann und in welcher Laufzeit das m\u00f6glich ist.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/97_Bsp_Mediane-Beispiel.mp4"}, {"id": 108, "name": "kd-B\u00e4ume (Exkurs)", "description": "kd-B\u00e4ume sind B\u00e4ume mit einer h\u00f6heren Dimension. Mithilfe der Idee den Baum abwechselnd nach x- und y-Koordinate zu durchsuchen und so zu konstruieren entsteht ein Algorithmus mit dem man mehrdimensionale Suchb\u00e4ume erstellen kann. Auch schauen wir uns an, wie man in einem solchen Baum sucht.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/98_Def_kd-B\u00e4ume-Exkurs.mp4"}, {"id": 109, "name": "(parallelisierte) Sortierverfahren", "description": "In dieser Vorlesung beenden wir das Kapitel zum Thema Sortieralgorithmen und werfen abschlie\u00dfend einen Blick auf parallelisierte Sortierverfahren.", "type": 0}, {"id": 110, "name": "Bubble-Sort Beispiel", "description": "Einige Beispiele, wie Bubble-Sort funktioniert, inklusive einiger verschiedener Darstellungen/Animationen und dem Vergleich mit Quick-Sort.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/100_Alg_Bubble-Sort-Beispiel.mp4"}, {"id": 111, "name": "paralleles Bubble-Sort", "description": "Mithilfe von Parallelisierung l\u00e4sst sich Bubble-Sort auch in linearer Zeit umsetzen. Die Idee daf\u00fcr wird hier einmal erl\u00e4utert.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/101_Def_Paralleles-Bubble-Sort.mp4"}, {"id": 112, "name": "Bogo-Sort", "description": "Bogo-Sort ist ein eher als Scherz gemeinter Sortieralgorithmus. Dabei wird die gegebene Menge solange zuf\u00e4llig durchpermutiert und \u00fcberpr\u00fcft bis die korrekte L\u00f6sung erreicht ist.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/102_Alg_Bogo-Sort.mp4"}, {"id": 113, "name": "Zusammenfassung", "description": "Diese Vorlesung markiert das Ende der Vorlesungszeit. Wir gehen deshalb noch einmal R\u00fcckblickend \u00fcber die verschiedenen Themen die in den vergangenen Monaten behandelt wurden und geben die M\u00f6glichkeit Fragen zu stellen.", "type": 0}, {"id": 114, "name": "Klausurvorbereitung", "description": "Die letzte gro\u00dfe \u00dcbung von AuD mit Spiel, Spa\u00df, Spannung und vielen Fragen.", "type": 3}, {"id": 115, "name": "Einleitung", "description": "Eine Einleitung in die Welt der Algorithmen und Datenstrukturen. Was ist ein Algorithmus und wozu wird er ben\u00f6tigt? Und was haben Datenstrukturen damit zu tun?", "type": 5}, {"id": 116, "name": "Graphen", "description": "Graphen sind eine wichtige Darstellungsform von Daten in der Informatik. Wie Graphen aufgebaut sind und was man alles mit ihnen machen kann wird in diesem Kapitel behandelt.", "type": 5}, {"id": 117, "name": "Suche in Graphen", "description": "Die Suche in Graphen ist ein wichtiges Werkzeug. Allerdings gibt es mehrere Wege, welche zum Ziel f\u00fchren und nicht alle funktionieren gleich gut. Wie man effizient in Graphen sucht wird in diesem Kapitel behandelt.", "type": 5}, {"id": 118, "name": "Dynamische Datenstrukturen", "description": "Im Laufe der Vorlesung wurden bereits einige Datenstrukturen vorgestellt. In diesem Kapitel besch\u00e4ftigen wir uns mit einer weiteren Klasse der Datenstrukturen, den dynamischen Datenstrukturen. Und damit, welche M\u00f6glichkeiten sie bieten.", "type": 5}, {"id": 119, "name": "Sortieren", "description": "Neben der Suche von Elementen spielt auch das Sortieren in der Informatik eine gro\u00dfe Rolle. Wie man das macht wird in diesem Kapitel behandelt.", "type": 5}, {"id": 120, "name": "AuD1", "description": "Algorithmen und Datenstrukturen 1", "type": 5}], "links": [{"source": 0, "target": 115}, {"source": 1, "target": 0}, {"source": 2, "target": 0}, {"source": 3, "target": 115}, {"source": 3, "target": 5}, {"source": 4, "target": 0}, {"source": 5, "target": 115}, {"source": 6, "target": 5}, {"source": 7, "target": 115}, {"source": 8, "target": 115}, {"source": 8, "target": 7}, {"source": 9, "target": 116}, {"source": 10, "target": 13}, {"source": 11, "target": 116}, {"source": 11, "target": 14}, {"source": 11, "target": 20}, {"source": 11, "target": 22}, {"source": 11, "target": 23}, {"source": 12, "target": 13}, {"source": 12, "target": 14}, {"source": 13, "target": 116}, {"source": 14, "target": 116}, {"source": 15, "target": 116}, {"source": 16, "target": 15}, {"source": 17, "target": 15}, {"source": 18, "target": 15}, {"source": 19, "target": 15}, {"source": 20, "target": 21}, {"source": 21, "target": 116}, {"source": 22, "target": 21}, {"source": 23, "target": 21}, {"source": 24, "target": 117}, {"source": 25, "target": 117}, {"source": 25, "target": 15}, {"source": 26, "target": 27}, {"source": 27, "target": 117}, {"source": 28, "target": 29}, {"source": 28, "target": 30}, {"source": 28, "target": 31}, {"source": 28, "target": 32}, {"source": 28, "target": 33}, {"source": 29, "target": 117}, {"source": 30, "target": 117}, {"source": 31, "target": 117}, {"source": 31, "target": 27}, {"source": 32, "target": 117}, {"source": 32, "target": 27}, {"source": 33, "target": 34}, {"source": 33, "target": 35}, {"source": 34, "target": 117}, {"source": 35, "target": 117}, {"source": 36, "target": 35}, {"source": 36, "target": 37}, {"source": 37, "target": 117}, {"source": 38, "target": 32}, {"source": 38, "target": 31}, {"source": 38, "target": 27}, {"source": 39, "target": 31}, {"source": 39, "target": 27}, {"source": 40, "target": 32}, {"source": 40, "target": 27}, {"source": 41, "target": 37}, {"source": 42, "target": 117}, {"source": 43, "target": 37}, {"source": 43, "target": 31}, {"source": 43, "target": 32}, {"source": 44, "target": 25}, {"source": 44, "target": 46}, {"source": 45, "target": 27}, {"source": 45, "target": 35}, {"source": 46, "target": 28}, {"source": 46, "target": 47}, {"source": 47, "target": 118}, {"source": 48, "target": 118}, {"source": 49, "target": 48}, {"source": 50, "target": 51}, {"source": 50, "target": 52}, {"source": 51, "target": 118}, {"source": 52, "target": 118}, {"source": 52, "target": 51}, {"source": 53, "target": 52}, {"source": 54, "target": 52}, {"source": 55, "target": 52}, {"source": 56, "target": 52}, {"source": 57, "target": 52}, {"source": 58, "target": 59}, {"source": 59, "target": 51}, {"source": 59, "target": 118}, {"source": 60, "target": 59}, {"source": 61, "target": 118}, {"source": 61, "target": 60}, {"source": 61, "target": 59}, {"source": 62, "target": 118}, {"source": 63, "target": 25}, {"source": 64, "target": 63}, {"source": 64, "target": 25}, {"source": 65, "target": 63}, {"source": 65, "target": 25}, {"source": 66, "target": 47}, {"source": 66, "target": 48}, {"source": 66, "target": 51}, {"source": 66, "target": 52}, {"source": 66, "target": 59}, {"source": 66, "target": 61}, {"source": 67, "target": 22}, {"source": 67, "target": 47}, {"source": 68, "target": 52}, {"source": 68, "target": 51}, {"source": 69, "target": 61}, {"source": 69, "target": 59}, {"source": 70, "target": 50}, {"source": 70, "target": 71}, {"source": 70, "target": 72}, {"source": 70, "target": 73}, {"source": 71, "target": 58}, {"source": 71, "target": 51}, {"source": 72, "target": 58}, {"source": 72, "target": 51}, {"source": 73, "target": 118}, {"source": 74, "target": 75}, {"source": 74, "target": 76}, {"source": 75, "target": 119}, {"source": 76, "target": 77}, {"source": 76, "target": 78}, {"source": 77, "target": 119}, {"source": 78, "target": 119}, {"source": 79, "target": 78}, {"source": 80, "target": 78}, {"source": 80, "target": 62}, {"source": 81, "target": 119}, {"source": 82, "target": 81}, {"source": 83, "target": 75}, {"source": 83, "target": 81}, {"source": 84, "target": 75}, {"source": 85, "target": 81}, {"source": 86, "target": 73}, {"source": 86, "target": 87}, {"source": 86, "target": 119}, {"source": 86, "target": 84}, {"source": 87, "target": 86}, {"source": 88, "target": 119}, {"source": 88, "target": 86}, {"source": 88, "target": 84}, {"source": 89, "target": 90}, {"source": 89, "target": 91}, {"source": 89, "target": 92}, {"source": 89, "target": 93}, {"source": 90, "target": 119}, {"source": 91, "target": 119}, {"source": 92, "target": 119}, {"source": 92, "target": 91}, {"source": 93, "target": 119}, {"source": 94, "target": 93}, {"source": 95, "target": 96}, {"source": 96, "target": 119}, {"source": 97, "target": 96}, {"source": 97, "target": 81}, {"source": 98, "target": 100}, {"source": 98, "target": 101}, {"source": 99, "target": 98}, {"source": 100, "target": 119}, {"source": 101, "target": 119}, {"source": 101, "target": 100}, {"source": 102, "target": 103}, {"source": 102, "target": 104}, {"source": 103, "target": 119}, {"source": 104, "target": 119}, {"source": 105, "target": 96}, {"source": 105, "target": 100}, {"source": 105, "target": 101}, {"source": 106, "target": 96}, {"source": 107, "target": 100}, {"source": 107, "target": 101}, {"source": 108, "target": 119}, {"source": 108, "target": 51}, {"source": 108, "target": 105}, {"source": 109, "target": 110}, {"source": 109, "target": 111}, {"source": 109, "target": 112}, {"source": 110, "target": 119}, {"source": 110, "target": 96}, {"source": 111, "target": 110}, {"source": 112, "target": 119}, {"source": 113, "target": 120}, {"source": 114, "target": 113}, {"source": 115, "target": 120}, {"source": 116, "target": 120}, {"source": 117, "target": 120}, {"source": 118, "target": 120}, {"source": 119, "target": 120}], "objectGroups": [{"id": 0, "name": "Vorlesung", "color": "rgb(104, 169, 77)"}, {"id": 1, "name": "Beispiel", "color": "rgb(102, 75, 154)"}, {"id": 2, "name": "Definition", "color": "rgb(41, 171, 226)"}, {"id": 3, "name": "\u00dcbung", "color": "rgb(224, 133, 35)"}, {"id": 4, "name": "Algorithmus", "color": "rgb(214, 207, 126)"}, {"id": 5, "name": "Kapitel", "color": "rgb(239, 65, 35)"}]}
\ No newline at end of file
{"nodes": [{"id": 0, "name": "Begr\u00fc\u00dfung und Organisatorisches", "description": "Eine Einf\u00fchrung in die Algorithmen und Datenstrukturen", "type": 0, "video": "https://www.ibr.cs.tu-bs.de/courses/ws2122/aud/videos/VL0.mp4"}, {"id": 1, "name": "Rundreise Problem", "description": "Gegeben: Ein Graph $G = (V, E)$ mit Kantenl\u00e4ngen $w_e$, Gesucht: Eine k\u00fcrzeste Rundreise, welche alle Knoten im Graphen einmal besucht und im Startknoten wieder endet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/2_Bsp_Rundreise-Problem.mp4"}, {"id": 2, "name": "Puzzle", "description": "Jeder hat schon einmal ein Puzzle gel\u00f6st, doch wie sieht das aus algorithmischer Sicht aus?", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/3_Bsp_Puzzle.mp4"}, {"id": 3, "name": "Algorithmus-Definition", "description": "Zitat: 'Ein Algorithmus ist eine aus endlich vielen Schritten bestehende eindeutige Handlungsvorschrift zur L\u00f6sung eines Problems oder einer Klasse von Problemen.'-Wikipedia. Dabei wird als Input eine Problembeschreibung gegeben und durch Anwendung des Algorithmus eine fertige L\u00f6sung des Problems ermittelt. Oft spielt die Laufzeit des Algorithmus eine gro\u00dfe Rolle. Sie beschreibt, wie viele einzelne Schritte n\u00f6tig sind um das Problem zu l\u00f6sen, in Abh\u00e4ngigkeit von der Gr\u00f6\u00dfe des Problems.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/4_Def_Algorithmus.mp4"}, {"id": 4, "name": "P und NP", "description": "Die Klassen P und NP teilen algorithmische Probleme in zwei Kategorien auf. Die eine, bei der man mithilfe eines Algorithmus eine L\u00f6sung Pfinden kann (P) und eine zweite, bei der bisher nur das NachPr\u00fcfen einer existierenden L\u00f6sung in polynomieller gelingt (NP). Wenn es allerdings keine L\u00f6sung gibt, so l\u00e4sst sich das bei Problemen der Klasse NP nur schlecht beweisen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/6_Def_P-und-NP.mp4"}, {"id": 5, "name": "Einf\u00fchrung des Algorithmusbegriffs", "description": "In dieser Vorlesung wird der Begriff 'Algorithmus' definiert und erkl\u00e4rt.", "type": 0, "video": "https://www.ibr.cs.tu-bs.de/courses/ws2122/aud/videos/VL1.mp4"}, {"id": 6, "name": "Datenstrukturen", "description": "Eine Datenstruktur erlaubt es, die f\u00fcr eine Aufgabe notwendigen Informationen geeignet zu repr\u00e4sentieren und den Zugriff und die Verwaltung w\u00e4hrend der Bearbeitung in effizienter Weise zu erm\u00f6glichen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/8_Def_Datenstrukturen.mp4"}, {"id": 7, "name": "Organisation und Pseudocode", "description": "In dieser \u00dcbung haben wir noch einmal organisatorische Dinge besprochen und uns mit dem Thema Pseudocode auseinandergesetzt.", "type": 3, "video": "https://www.ibr.cs.tu-bs.de/courses/ws2122/aud/videos/U0.mp4"}, {"id": 8, "name": "Pseudocode", "description": "Pseudocode ist eine Art Algorithmen theoretisch zu formulieren, ohne dabei auf die Besonderheiten einer Programmiersprache achten zu m\u00fcssen. Das Ziel ist es Algorithmen klar und eindeutig darzustellen. Da Pseudocode meist \u00e4hnliche Schl\u00fcsselw\u00f6rter wie tats\u00e4chliche Programmiersprachen nutzt, l\u00e4sst sich der entspehende Code oft einfach in eine tats\u00e4chliche Implementierung \u00fcbersetzen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/9_Def_Pseudocode.mp4"}, {"id": 9, "name": "Einleitung in die Graphen", "description": "Eine Einleitung in die Welt der Graphen am wohl bekanntesten Beispiel, dem Haus des Nikolaus.", "type": 0}, {"id": 10, "name": "Haus des Nikolaus", "description": "Jeder kennt das Haus vom Nikolaus, doch wie wird es gemalt? Wo setzt man den Stift an und wo wieder ab?", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/11_Bsp_Haus-des-Nikolaus.mp4"}, {"id": 11, "name": "Eulertouren", "description": "Ein Eulerweg ist ein Weg in einem Graphen, welcher alle Kanten nutzt. Eine Eulertour kehrt dar\u00fcber hinaus auch zum Startknoten zur\u00fcck.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/12_Def_Eulertouren.mp4"}, {"id": 12, "name": "Graphenbegriffe", "description": "Ein Graph besteht aus Knoten und Kanten, doch was parallele Kanten, Schleifen, (geschlossene) Wege, Pfade, Kreise, Eulerwege/-touren, sowie Hamiltonpfade und -kreise sind wird in dieser Vorlesung noch einmal genau definiert.", "type": 0}, {"id": 13, "name": "Graph", "description": "Um mit Graphen arbeiten zu k\u00f6nnen ist eine formale Definition besonders wichtig. Diese gibt es in diesem Video.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/14_Def_Graph.mp4"}, {"id": 14, "name": "Wege in Graphen", "description": "Eine Kantenfolge $W$ in einem Graphen $G$ hei\u00dft Weg, wenn sich keine Kante darin wiederholt und geschlossener Weg (Tour), wenn man am Ende wieder am Startknoten ankommt. Wiederholt sich kein Knoten spricht man von einem Pfad. Ein Kreis ist ein geschlossener Pfad. Bei einem Eulerweg/ einer Eulertour werden alle Kanten des Graphen genutzt. Ein Hamiltonpfad/kreis nutzt hingegen alle Knoten.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/15_Def_Wege-in-Graphen.mp4"}, {"id": 15, "name": "Beweistechniken Teil 1", "description": "In der Mathematik und auch in der Algorithmik spielen Beweise immer wieder eine gro\u00dfe Rolle. Es geht darum Aussagen zu belegen, zu widerlegen oder auf bestimmte Elemente anzuwenden. Dazu gibt es verschiedene Beweistechniken, welche ihr hier finden k\u00f6nnt:", "type": 3}, {"id": 16, "name": "Direkter Beweis", "description": "Aussagen oft in der Form $A \\Rightarrow B$. Unterscheide zwischen Voraussetzung ($A$) und Schlussfolgerung ($B$). Wird die Schlussfolgerung durch eine logische Folgerungskette aus den Voraussetzungen hergeleitet, so spricht man von einem direkten Beweis.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16a_Bsp_Direkter-Beweis.mp4"}, {"id": 17, "name": "Kontraposition", "description": "Ein direkter Beweis kann schwierig sein, sodass sich die Kontraposition anbietet. Es gilt $(A \\Righrarrow B) \\Leftrightarrow (-B \\Rightarrow -A)$. Wir k\u00f6nnen also Annehmen, dass $B$ nicht gilt und folgern daraus, dass auch $A$ nicht gelten kann.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16b_Bsp_Kontraposition.mp4"}, {"id": 18, "name": "Widerspruchsbeweis", "description": "Mathematische Aussagen sind entweder wahr oder falsch. Um eine wahre Aussage zu beweisen, k\u00f6nnen wir zeigen, dass die Negation nicht gilt. Diese Beweistechnik nennt man Widerspruchsbeweis.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16c_Bsp_Widerspruchsbeweis.mp4"}, {"id": 19, "name": "\u00c4quivalenzbeweis", "description": "Aussagen der Form A <=> B k\u00f6nnen bewiesen werden, indem sowohl<br>A => B und B => A gezeigt werden.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/16d_Bsp_\u00c4quivalenzbeweis.mp4"}, {"id": 20, "name": "Bedingungen f\u00fcr Eulertouren", "description": "In dieser Vorlesung werden notwendige Bedingungen f\u00fcr Eulertouren erleutert. Zus\u00e4tzlich wird das Kapitel 2 noch einmal zusammengefasst und es werden Algorithmen eingef\u00fchrt um die uns bisher bekannten Probleme zu l\u00f6sen.", "type": 0}, {"id": 21, "name": "Algorithmus Wegfindung", "description": "Dieser Algorithmus (2.7) erh\u00e4lt als Input einen Graphen G mit h\u00f6chstens zwei ungeraden Knoten und liefert als Output einen Weg in G", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/18_Alg_Wegfindung.mp4"}, {"id": 22, "name": "Algorithmus von Hierholzer", "description": "Dieser Algorithmus (2.8) erh\u00e4lt als Input einen zusammenh\u00e4ngenden Graphen G mit h\u00f6chstens zwei ungeraden Knoten und liefert als Output einen Eulerweg, bzw. eine Eulertour in G. Dazu wird auch Algorithmus 2.7 zum Finden von Wegen in G verwendet.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/19_Alg_Hierholzer.mp4"}, {"id": 23, "name": "Algorithmus von Fleury", "description": "Dieser Algorithmus(2.13) erh\u00e4lt als Input einen Graphen G mit h\u00f6chstens 2 ungeraden Knoten und liefert als Output einen Weg in G. Der Algorithmus hat als Grundlage Algorithmus 2.7 zum Finden von Wegen. Auch l\u00e4sst sich zeigen, dass man mit diesem Algorithmus eine Eulertour/einen Eulerweg finden kann.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/20_Alg_Fleury.mp4"}, {"id": 24, "name": "Anwendung von Graphen", "description": "In dieser Vorlesung geht es um den Einsatzzweck von Graphen und es wird am Beispiel der Erd\u00f6s- und der Kevin Bacon Zahl gezeigt, welche Zusammenh\u00e4nge dargestellt werden k\u00f6nnen.", "type": 0}, {"id": 25, "name": "Beweistechniken Teil 2", "description": "In dieser \u00dcbung geht es um die Beweistechnik der vollst\u00e4ndigen Induktion. Diese ist die wohl meist benutzte Beweistechnik in der Algorithmik. Auch werden Anwendungsbeispiele wie z.B. die Gau\u00df'sche Summenformel oder der Zusammenhang in Graphen erl\u00e4utert.", "type": 3}, {"id": 26, "name": "Graphenscan", "description": "In dieser Vorlesung wird der Graphenscanalgorithmus vorgestellt um Zusammenhangskomponenten in Graphen zu finden.", "type": 0}, {"id": 27, "name": "Algorithmus Graphenscan", "description": "Dieser Algorithmus (3.7) erh\u00e4hlt als Input einen Graphen G = (V,E) und einen Knoten s darin und liefert als Output eine Knotenmenge Y aus V, die von s aus erreichbar ist, sowie eine Kantenmenge T aus E, welche die Erreichbarkeit sicherstellt", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/25_Alg_Graphenscan.mp4"}, {"id": 28, "name": "Datenstrukturen Teil 1", "description": "In dieser Vorlesung werden die Datenstrukturen Warteschlange (First In - First Out) und Stapel (Last In - First Out) vorgestellt. Au\u00dferdem geht es um ihre Rolle f\u00fcr Algorithmen und wie man sie implementieren kann. Das ganze wird am Beispiel des Graphscan Algorithmus gezeigt und somit werden auch Breiten- und Tiefensuche eingef\u00fchrt.", "type": 0}, {"id": 29, "name": "Warteschlange", "description": "Eine Warteschlange ist eine Datenstruktur, welche nach dem Prinzip 'First In - First Out' arbeitet. Man findet sie auch im allt\u00e4glichen Leben oft wieder, wenn man sich beispielsweise an der Kasse anstellen muss. Der Kunde der zuerst da war, wir auch zuerst bedient.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/27_Def_Warteschlange.mp4"}, {"id": 30, "name": "Stapel", "description": "Ein Stapel ist eine Datenstruktur, welche nach dem Prinzip 'Last In - First Out' arbeitet. Im allt\u00e4glichen Leben findet man diese Form der Datenstruktur beim Geschirr abwaschen, man stapelt die Teller und der Teller der zuletzt dreckig wurde wird als erstes gereinigt, da man die Teller von oben herunter nimmt.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/28_Def_Stapel.mp4"}, {"id": 31, "name": "Breitensuche", "description": "Die Breitensuche ist im Prinzip der Graphscan Algorithmus, ausgef\u00fchrt mithilfe einer Warteschlange als Datenstruktur. Sie breitet sich aus wie eine Welle.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/29_Alg_Breitensuche.mp4"}, {"id": 32, "name": "Tiefensuche", "description": "Die Breitensuche ist im Prinzip der Graphscan Algorithmus, ausgef\u00fchrt mithilfe eines Stapels als Datenstruktur. Dabei werden eher einzelne Pfade gelaufen.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/30_Alg_Tiefensuche.mp4"}, {"id": 33, "name": "Datenstrukturen Teil 2", "description": "In dieser Vorlesung geht es einerseits um die Anwendung der Breitensuche, andererseits werden noch 2 weitere Datenstrukturen eingef\u00fchrt: Die Inzidenz/-Adjazenzmatrix, sowie die Kantenliste.", "type": 0}, {"id": 34, "name": "Inzidenz/-Adjazenzmatrix", "description": "In einer Inzidenzmatrix wird mithilfe von 1en und 0en dargestellt, welche Knoten mit welchen Kanten inzident (zusammentreffend) sind. Bei einer Adjazenzmatrix wird dargestellt, welche Knoten adjazent (durch eine Kante verbunden) sind.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/32_Def_Inzidenz-Adjazenzmatrix.mp4"}, {"id": 35, "name": "Kanten-/Adjazenzliste", "description": "Eine Kantenliste ist eine Liste bestehend aus eintr\u00e4gen der Form {vx, vy}, welche bedeuten, dass eine Kante zwischen vx und vy im Graphen existiert.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/33_Def_Kantenliste.mp4"}, {"id": 36, "name": "Wachstum/O-Notation", "description": "In dieser Vorlesung wird noch einmal mit den Adjazenz- und Kantenlisten abgeschlossen. Au\u00dferdem schauen wir uns einmal das Wachstum von Funktionen an und definieren und die O-Notation um damit zu arbeiten.", "type": 0}, {"id": 37, "name": "O-Notation", "description": "Die O-Notation wird genutzt um das Wachstum von Funktionen abzusch\u00e4tzen. Damit k\u00f6nnen Gr\u00f6\u00dfenordnungen und Wachstumsverhalten beschrieben werden.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/35_Def_O-Notation.mp4"}, {"id": 38, "name": "Graphscan \u00dcbung", "description": "Simple Anwengung des Graphscan Algorithmus, einmal als Breiten- und als Tiefensuche. Wann welcher Algorithmus besser geeignet ist wird in dieser \u00dcbung erkl\u00e4rt.", "type": 3}, {"id": 39, "name": "Breitensuche Beispiel", "description": "Ein Beispiel f\u00fcr die Anwendung des Graphenscan Algorithmus in Form der Breitensuche mithilfe einer Warteschlange als Datenstruktur.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/36a_Bsp_Breitensuche.mp4"}, {"id": 40, "name": "Tiefensuche Beispiel", "description": "Ein Beispiel f\u00fcr die Anwendung des Graphenscan Algorithmus in Form der Tiefensuche mithilfe eines Stapels als Datenstruktur.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/36b_Bsp_Tiefensuche.mp4"}, {"id": 41, "name": "Wachstum", "description": "Die O-Notation wird genutzt um das Wachstum von Funktionen abzusch\u00e4tzen. In dieser \u00dcbung werden Zusammenh\u00e4nge zwischen der Gr\u00f6\u00dfe des Inputs und dem Wachstum, sowie Relationen zwischen Laufzeitklassen n\u00e4her beleuchtet. Auch wird die O-Notation an verschiedenen Beispielen erkl\u00e4rt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/36c_Bsp_O-Notation.mp4"}, {"id": 42, "name": "Wiederholung: Suche in Graphen", "description": "Noch einmal ein R\u00fcckblick auf alles, was bisher in 'Kapitel 3: Suche in Graphen' passiert ist. ", "type": 0}, {"id": 43, "name": "Eigenschaften von DFS und BFS", "description": "In dieser Vorlesung betrachten wir die Breiten- und Tiefensuche im Hinblick auf ihre Laufzeit. Dabei wird anschaulich, wie die Algorithmen arbeiten, wann man sie am besten nutzen sollte und wie man Laufzeiten beweisen kann.", "type": 0}, {"id": 44, "name": "Induktionsbeweis Beispiel", "description": "Ein Beispiel, bei dem der Induktionsbeweis auch in der Graphentheorie zum Einsatz kommt. Weitere Beispiele dieser Art finden sich in Vorlesung 12.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/40_Bsp_Induktionsbeweis.mp4"}, {"id": 45, "name": "Graphscan Adjazenzliste", "description": "Hier wird zuerst ein Graph in der Form einer Adjazenzliste dargestellt und dann mithilfe dieser als Datenstruktur der Graphscan Algorithmus durchgef\u00fchrt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/42_Bsp_Graphenscan-Adjazenzliste.mp4"}, {"id": 46, "name": "Verschiedene dynamische Datenstrukturen", "description": "In dieser Vorlesung beginnen wir dynamische Datenstrukturen einzuf\u00fchren. Es werden Stapel, Warteschlangen und verkettete Listen vorgestellt. Au\u00dferdem besch\u00e4ftigen wir uns mit bin\u00e4rer Suche.", "type": 0}, {"id": 47, "name": "Verkettete Liste", "description": "Eine verkettete Liste ist eine dynamische Datenstruktur. Dabei werden f\u00fcr die einzelnen Elemente jeweils Vorg\u00e4nger und Nachfolger mit gespeichert. Der Vorteil hierbei ist, dass neue Eintr\u00e4ge \u00fcberall eingef\u00fcgt werden k\u00f6nnen.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/44_Def_Verkettete-Listen.mp4"}, {"id": 48, "name": "Bin\u00e4re Suche", "description": "Dieser Algorithmus (4.1) erh\u00e4lt als Input einen sortierten Array mit Eintr\u00e4gen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS und liefert als Output die Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/45_Alg_Bin\u00e4re-Suche.mp4"}, {"id": 49, "name": "Bin\u00e4re Suche Beispiel", "description": "Der Algorithmus f\u00fcr die bin\u00e4re Suche einmal an zwei Beispielen angewandt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/46_Bsp_Bin\u00e4re_Suche.mp4"}, {"id": 50, "name": "Bin\u00e4re Suchb\u00e4ume", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns genauer mit bin\u00e4ren Suchb\u00e4umen und den darauf anwendbaren Operationen, wie Maximum, Minimum, einf\u00fcgen und l\u00f6schen von Knoten, sowie mit der bin\u00e4ren Suche.", "type": 0}, {"id": 51, "name": "Bin\u00e4rer Suchbaum", "description": "In dieser Definition werden die Begriffe 'gerichteter Graph/Baum', 'H\u00f6he eines Baumes', '(voller/vollst\u00e4ndiger) bin\u00e4rer Baum', 'Blatt eines Baumes', 'Teilbaum eines Knotens' und 'bin\u00e4rer Suchbaum' definiert und erkl\u00e4rt.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/49_Def_Bin\u00e4rer-Suchbaum.mp4"}, {"id": 52, "name": "Grundoperationen Suchbaum", "description": "Minimum/Maximum finden, Suche im Baum, Nachfolger finden, Einf\u00fcgen und L\u00f6schen sind die Grundoperationen, welche auf bin\u00e4re Suchb\u00e4ume angewendet werden k\u00f6nnen. Und hier findet ihr die Algorithmen dazu.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50_Alg_Bin\u00e4rer-Suchbaum-Grundoperationen.mp4"}, {"id": 53, "name": "Bin\u00e4rer Suchbaum Min/Max", "description": "In einem bin\u00e4ren Suchbaum lassen sich leicht das Minimum, sowie das Maximum finden. Wie das funktioniert, kannst du dir hier noch einmal anschauen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50a_Bsp_Bin\u00e4rer-Suchbaum-Min-Max.mp4"}, {"id": 54, "name": "Bin\u00e4rer Suchbaum Suche", "description": "Auch die Suche in einem bin\u00e4ren Suchbaum ist recht simpel, wie der Name schon verr\u00e4t. Wie das genau funktioniert siehst du hier.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50b_Bsp_Bin\u00e4rer-Suchbaum-Suche.mp4"}, {"id": 55, "name": "Bin\u00e4rer Suchbaum Nachfolger", "description": "Oft kann es helfen den Nachfolger eines Schl\u00fcsselwertes in einem bin\u00e4ren Suchbaum zu finden (Zum Beispiel beim L\u00f6schen von Elementen). Wie das geht kannst du hier nachschauen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50c_Bsp_Bin\u00e4rer-Suchbaum-Nachfolger.mp4"}, {"id": 56, "name": "Bin\u00e4rer Suchbaum Einf\u00fcgen", "description": "Das Einf\u00fcgen in einen bin\u00e4ren Suchbaum ist recht simpel, man muss allerdings darauf achten, dass die Struktur erhalten bleibt. Wie das geht siehst du hier.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50d_Bsp_Bin\u00e4rer-Suchbaum-Einf\u00fcgen.mp4"}, {"id": 57, "name": "Bin\u00e4rer Suchbaum L\u00f6schen", "description": "Das L\u00f6schen von Elementen kann sehr einfach sein, es kann sich jedoch auch als sehr komplex entpuppen, je nachdem wie viele Kinder der zu l\u00f6schende Knoten hat. Solltest du dir hier noch unsicher sein schau dir das Video dazu an.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/50e_Bsp_Bin\u00e4rer-Suchbaum-L\u00f6schen.mp4"}, {"id": 58, "name": "AVL-B\u00e4ume", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit speziellen bin\u00e4ren Suchb\u00e4umen, den AVL-B\u00e4umen und ihren Eigenschaften.", "type": 0}, {"id": 59, "name": "AVL-Baum", "description": "Ein bin\u00e4rer Suchbaum ist h\u00f6henbalanciert, wenn sich f\u00fcr jeden Knoten v die H\u00f6he der beiden Kinder von v um h\u00f6chstens 1 unterscheidet. Ein h\u00f6henbalancierter Suchbaum hei\u00dft auch AVL-Baum.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/52_Def_AVL-Baum.mp4"}, {"id": 60, "name": "dyn. Operationen auf AVL-B\u00e4umen", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit dem Erhalt der AVL-Eigenschaft eines bin\u00e4ren Suchbaumes bei Einf\u00fcge- und L\u00f6schoperationen. Au\u00dferdem werfen wir einen Blick auf die Fibonacci-Zahlen.", "type": 0}, {"id": 61, "name": "AVL-Rotation", "description": "Dieser Algorithmus (4.9) erh\u00e4lt als Input einen Knoten x eines bin\u00e4ren Suchbaumes T, Vaterknoten y, Gro\u00dfvaterknoten z und liefert als Output den bin\u00e4ren Suchbaum T nach Umstrukturierung mit x, y, z.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/54_Alg_AVL-Restructure.mp4"}, {"id": 62, "name": "Fibonacci-Zahlen", "description": "Die Fibonacci-Zahlen sind eine rekursiv definierte Zahlenfolge, bei der sich eine Zahl aus der Summe ihrer zwei Vorg\u00e4nger ergibt. Dabei sind die ersten beiden Elemente gegeben als 1. Die Fibonacci-Zahlen finden sich \u00fcberall in der Natur wieder und haben nicht wenig mit unserer Auffassung von Sch\u00f6nheit zu tun.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/55_Def_Fibonacci-Zahlen.mp4"}, {"id": 63, "name": "Induktionsbeweis-\u00dcbung", "description": "In dieser \u00dcbung schauen wir uns eine Beweistechnik an: die vollst\u00e4ndige Induktion.", "type": 3}, {"id": 64, "name": "Induktionsbeweise", "description": "Eine Reihe von Beispielen zum Thema Induktionsbeweis. Es wird in verschiedenen Szenarien gezeigt, wie man Den Induktionsanfang erh\u00e4lt, damit die Induktionsbehauptung aufstellt und diese dann nutzt um den Induktionsschritt durchzuf\u00fchren.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/57_Bsp_Induktionsbeweise.mp4"}, {"id": 65, "name": "Fehler bei Induktionsbeweisen", "description": "In diesem Video wird einmal auf beliebte Fehler bei Induktionsbeweisen eingegangen, welche man unbedingt vermeiden sollte.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/58_Bsp_Fehler-bei-Induktionsbeweisen.mp4"}, {"id": 66, "name": "\u00dcbung dynamische Datenstrukturen", "description": "In dieser \u00dcbung betrachten wir noch einmal verschiedene Aspekte von Datenstrukturen und stellen \u00dcberlegungen an, wie die Auswahl von Datenstrukturen die Laufzeit von Algorithmen beeinflussen kann.", "type": 3}, {"id": 67, "name": "Laufzeit Hierholzer Algorithmus", "description": "Wir betrachten einmal die Laufzeit des Hierholzer-Algorithmus (2.8) und im Zusammenhang damit auch verkettete Listen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/59a_Bsp_Laufzeit-Hierholzer.mp4"}, {"id": 68, "name": "Suchbaummerge", "description": "In diesem Teil der \u00dcbung betrachten wir einmal das Verschmelzen von bin\u00e4ren Suchb\u00e4umen und dessen Laufzeit.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/59b_Bsp_Suchbaummerge.mp4"}, {"id": 69, "name": "Beispiel AVL-Baum-Operationen", "description": "Wir schauen uns noch einmal genauer die AVL-B\u00e4ume an und was man damit machen kann. Insbesondere auch die Operationen L\u00f6schen und Einf\u00fcgen.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/59c_Bsp_AVL-Baum-Operationen.mp4"}, {"id": 70, "name": "Dynamische Datenstrukturen 2", "description": "In dieser Vorlesung schauen wir noch einmal auf das bisher in Kapitel 4 gelernte zur\u00fcck. Au\u00dferdem geben wir einen \u00dcberblick \u00fcber einige weitere dynamische Datenstrukturen wie Rot-Scharz-B\u00e4umme, B-B\u00e4ume und Heaps.", "type": 0}, {"id": 71, "name": "Rot-Schwarz-B\u00e4ume", "description": "Ein bin\u00e4rer Suchbaum hei\u00dft Rot-Schwarz-Baum, wenn er die folgenden Eigenschaften erf\u00fcllt:<br>1. Jeder Knoten ist entweder rot oder schwarz.<br>2. Die Wurzel ist schwarz.<br>3. Jedes Blatt (NIL) ist schwarz.<br>4. Wenn ein Knoten rot ist, sind seine beiden Kinder schwarz.<br>5. F\u00fcr jeden Knoten enthalten alle Pfade nach unten zu einem Blatt des Teilbaumes die gleiche Anzahl schwarzer Knoten.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/61_Def_Rot-Schwarz-B\u00e4ume.mp4"}, {"id": 72, "name": "B-B\u00e4ume", "description": "B-B\u00e4ume sind bin\u00e4re Suchb\u00e4ume, welche f\u00fcr externen Speicher (HDDs) optimiert sind. Dabei wird die H\u00f6he des Baumes minimiert und es werden den Knoten mehr Schl\u00fcssel zugewiesen.<br>Mehr dazu in Cormen, Kapitel 18 oder der Vorlesung RDB 2.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/62_Def_B-B\u00e4ume.mp4"}, {"id": 73, "name": "Heaps", "description": "Ein gerichteter bin\u00e4rer Baum hei\u00dft bin\u00e4rer Min/Max-Heap, wenn jeder Knoten einen Schl\u00fcssel hat, alle Ebenen au\u00dfer der 'letzten' genau 2 Knoten haben, auf der 'letzten' Ebene die linken n-(2^h)+1 Positionen besetzt sind und jeder Schl\u00fcssel eines Knotens h\u00f6chstens/mindestens so gro\u00df ist wie die seiner Kinder.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/63_Def_Heaps.mp4"}, {"id": 74, "name": "Einf\u00fchrung in das Sortieren", "description": "In dieser Vorlesung geben wir eine Einf\u00fchrung in das Oberthema Sortieren. Wir stellen au\u00dferdem einen Sortieralgorithmus mit dem Namen Mergesort vor und stellen grundlegende \u00dcberlegungen zur Laufzeit von Sortieralgorithmen an.", "type": 0}, {"id": 75, "name": "Merge-Sort", "description": "Dieser Algorithmus (5.1) erh\u00e4lt als Input ein Subarray von A=[1,...,n], der bei Index p beginnt und bei Index r endet, d.h. A[p,...,r] und liefert als Output ein sortiertes Subarray. Wichtig ist daf\u00fcr auch die Subroutine (5.2), welche als Input zwei sortierte Subarrays von A=[1,...,n], d.h. A[p,...,q] und A[q+1,...,r] erh\u00e4lt und als Output das sortierte Subarray A[p,...,r] liefert.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/65_Alg_Merge-Sort.mp4"}, {"id": 76, "name": "Sortier-Laufzeitschranken", "description": "In dieser Vorlesung leiten wir konkrete Laufzeitschranken f\u00fcr das Problem des Sortierens einer Liste von Zahlen her. Zudem machen wir uns Gedanken \u00fcber das L\u00f6sen von Rekursionsgleichungen.", "type": 0}, {"id": 77, "name": "Permutation", "description": "Eine Permutation P ist eine Umsortierung von n Objekten.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/67_Def_Permutation.mp4"}, {"id": 78, "name": "Erzeugende Funktionen", "description": "Erzeugende Funktionen k\u00f6nnen genutzt werden um Rekursionen zu l\u00f6sen. Wie das genau aussieht wird an einem simplen Beispiel hier einmal angef\u00fchrt.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/68_Def_erzeugende-Funktionen.mp4"}, {"id": 79, "name": "Erzeugende Funktionen/Mastertheorem", "description": "In dieser Vorlesung besprechen wir weitere Details zu erzeugenden Funktionen und f\u00fchren das Master-Theorem ein.", "type": 0}, {"id": 80, "name": "erzeugende Funktionen Fibonacci-Zahlen", "description": "In diesem Beispiel wird einmal die erzeugende Funktion der Fibonacci-Zahlen hergeleitet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/70_Bsp_Erzeugende-Funktionen-Fibonacci.mp4"}, {"id": 81, "name": "Master-Theorem", "description": "Das Master-Theorem bietet eine schnelle L\u00f6sung f\u00fcr die Frage, in welcher Laufzeitklasse eine gegebene rekursiv definierte Funktion liegt. Dies funktioniert leider nur, solange einer der drei F\u00e4lle des Theorems auf die Funktion angewandt werden kann, ansonsten liefert das Theorem keine Aussage.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/71_Def_Master-Theorem.mp4"}, {"id": 82, "name": "Master-Theorem Beispiele", "description": "Einige Beispiele, an denen das Master-Theorem und seine Funktion noch einmal verdeutlicht wird.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/72_Bsp_Master-Theorem-Beispiele.mp4"}, {"id": 83, "name": "Sortieralgorithmen und Master-Theorem", "description": "Wir betrachten ein weiteres Beispiel f\u00fcr Mergesort und leiten erneut die Laufzeit des Sortieralgorithmus her, indem das Master-Theorem benutzt wird. Au\u00dferdem betrachten wir einen weiteren Sortieralgorithmus: Heapsort.", "type": 3}, {"id": 84, "name": "Merge-Sort Beispiel", "description": "Hier wird der Merge-Sort Algorithmus einmal mit einem Beispiel komplett durchgef\u00fchrt und die Laufzeit des Algorithmus betrachtet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/74_Bsp_Merge-Sort-Beispiel.mp4"}, {"id": 85, "name": "Master-Theorem Beispiel", "description": "3 weitere Beispiele, welche dabei helfen das Master-Theorem zu verstehen und anzuwenden.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/75_Bsp_Master-Theorem-Beispiel.mp4"}, {"id": 86, "name": "Max-Heaps", "description": "Hier wir aufgezeigt, wie man mithilfe eines Algorithmus Max-Heaps bildet. ", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/76_Alg_Max-Heaps.mp4"}, {"id": 87, "name": "Max-Heaps Anwendung", "description": "Hier wird der Algorithmus aus der \u00dcbung 6 zum Erstellen eines Max-Heaps einmal an einem Beispiel angewandt.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/77_Bsp_Max-Heaps-Anwendung.mp4"}, {"id": 88, "name": "Heapsort", "description": "Heapsort ist ein Algorithmus bei dem mithilfe von Max-Heaps eine Reihe von Elementen sortiert werden kann. Der Algorithmus hat dabei eine Laufzeit von O(n log n), wie auch in \u00dcbung 6 bewiesen wird.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/78_Alg_Heapsort.mp4"}, {"id": 89, "name": "nichtlineare Rekursionen (Exkurs)", "description": "In dieser Vorlesung haben wir einen Exkurs in die nichtlineare Rekursion gemacht.", "type": 0}, {"id": 90, "name": "logistische Rekursion", "description": "Logistische Rekursion bezeichnet ein Wachstum proportional zu einer Gr\u00f6\u00dfe. Dabei betrachtet man beispielsweise eine Bev\u00f6lkerung, welche zwar durch Fruchtbarkeit immer weiter w\u00e4chst, aber beispielsweise durch Tod auch wieder im Wachstum beschr\u00e4nkt wird.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/80_Def_Logistische-Rekursion.mp4"}, {"id": 91, "name": "Mandelbrot-Menge", "description": "Die Mandelbrot-Menge, benannt nach Beno\u00eet Mandelbrot, ist eine Menge in den komplexen Zahlen. Interpretiert man sie als geometrische Figur, so ergibt sich ein Fraktal, welches im allgemeinen Sprachgebrauch auch als Apfelm\u00e4nnchen bekannt ist.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/81_Def_Mandelbrot-Menge.mp4"}, {"id": 92, "name": "Fraktale", "description": "Ein Fraktal beschreibt nat\u00fcrliche oder k\u00fcnstliche Gebilde oder geometrische Muster und ist ein von Beno\u00eet Mandelbrot gepr\u00e4gter Begriff. - Wikipedia", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/82_Def_Fraktale.mp4"}, {"id": 93, "name": "Zellul\u00e4re Automaten", "description": "Zellul\u00e4re oder auch zellulare Automaten dienen der Modellierung r\u00e4umlich diskreter dynamischer Systeme, wobei die Entwicklung einzelner Zellen zum Zeitpunkt t+1 prim\u00e4r von den Zellzust\u00e4nden in einer vorgegebenen Nachbarschaft und vom eigenen Zustand zum Zeitpunkt t abh\u00e4ngt. - Wikipedia", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/83_Def_Zellul\u00e4re-Automaten.mp4"}, {"id": 94, "name": "Game of Life", "description": "Das 'Game of Life' ist das wohl bekannteste Beispiel eines zellul\u00e4ren Automaten. ", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/84_Bsp_Game-of-Life.mp4"}, {"id": 95, "name": "Einf\u00fchrung von Quick-Sort", "description": "In dieser Vorlesung kehren wir zur\u00fcck zu Sortieralgorithmen und stellen den Quicksort-Algorithmus vor.", "type": 0}, {"id": 96, "name": "Quick-Sort", "description": "Dieser Algorithmus (5.14) erh\u00e4lt als Input ein Subarray von A=[1,...,n], der bei Index p beginnt und bei Index r endet, d.h. A[p,...,r] und liefert als Output einen sortierten Subarray. Dabei ist auch Subroutine 5.15 wichtig, welche als Input ein Subarray von A=[1,...,n], d.h. A[p,...,r] erh\u00e4lt und als Output zwei Subarrays A[p,...,q-1] und A[q+1,...,r] mit A[i]\u2264A[q] und A[q]<A[j] f\u00fcr i=p,...,q-1 und j=q+1,...,r liefert.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/86_Alg_Quick-Sort.mp4"}, {"id": 97, "name": "Laufzeit von Quick-Sort", "description": "Die Laufzeit des Quick-Sort Algorithmus l\u00e4sst sich mithilfe vom Master-Theorem ermitteln. Dazu betrachten wir die 3 F\u00e4lle best-case, average-case und worst-case f\u00fcr den Algorithmus.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/87_Bsp_Quick-Sort-Laufzeit.mp4"}, {"id": 98, "name": "Mediane", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit Medianen.", "type": 0}, {"id": 99, "name": "Standortprobleme", "description": "Was ist der optimale Standort f\u00fcr beispielsweise ein Amazon-Lagerhaus? Idee: Die durchschnittliche Distanz zu den zu beliefernden Geb\u00e4uden minimieren. In Amerika ist dies leicht umgesetzt mit der sogenannten Manhatten-Distanz. Dieses Problem ist die Einf\u00fchrung in das Thema der Mediane.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/89_Def_Standortprobleme.mp4"}, {"id": 100, "name": "Median (diskret)", "description": "Der Rank k eines Elements x (auch 'k-tes Element') ist definiert durch |{y \u2208 X |y<=x}| = k. Also die Anzahl der Elemente, welche kleiner oder gleich x sind. Speziell hei\u00dft x Median, wenn er das [n/2]-te Element ist. [n/2] wird dabei abgerundet.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/90_Def_Median-diskret.mp4"}, {"id": 101, "name": "Median (kontinuierlich)", "description": "Der kontinuierliche Median hat als Eigenschaft, dass das sowohl Integral bis zum Median, als auch ab dem Median gr\u00f6\u00dfer-gleich 1/2 ist.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/91_Def_Median-kontinuierlich.mp4"}, {"id": 102, "name": "Sortieralgorithmen Sonderf\u00e4lle", "description": "In dieser Vorlesung besch\u00e4ftigen wir uns mit Sonderf\u00e4llen f\u00fcr Sortieralgorithmen, durch die Sortieren in linearer Zeit erm\u00f6glicht wird. Dabei werfen wir einen n\u00e4heren Blick auf die Sortierverfahren Countingsort und Radixsort.", "type": 0}, {"id": 103, "name": "Counting-Sort", "description": "Dieser Algorithmus (5.14) erh\u00e4lt als Input ein Array von A=[1],...,A[n] mit Schl\u00fcsselwerten aus {1,\u2026, k} und liefert als Output eine sortierte Kopie B[1],\u2026,B[n] von [1],...,A[n].", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/93_Alg_Counting-Sort.mp4"}, {"id": 104, "name": "Radix-Sort", "description": "Dieser Algorithmus (5.18) erh\u00e4lt als Input n Zahlen mit je d Ziffern, die k verschiedene Werte annehmen k\u00f6nnen, [1],...,A[n] und liefert als Output einen sortierten Array. Dabei geht Radix-Sort im Gegensatz zu anderen Sortieralgorithmen ziffernweise vor.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/94_Alg_Radix-Sort.mp4"}, {"id": 105, "name": "Quick-Sort, Mediane, kd-B\u00e4ume", "description": "In dieser \u00dcbung schauen wir uns noch einmal das Sortierverfahren Quicksort an und sprechen \u00fcber die Berechnung von Medianen. Au\u00dferdem schauen wir uns mit den kd-B\u00e4umen eine spezielle Datenstruktur f\u00fcr mehrdimensionale Daten an.", "type": 3}, {"id": 106, "name": "Quick-Sort Beispiel", "description": "In diesem Beispiel wird die Funktionsweise von Quick-Sort, sowie die Laufzeit betrachtet.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/96_Bsp_Quick-Sort-Beispiel.mp4"}, {"id": 107, "name": "Mediane Beispiel", "description": "In diesem Teil der \u00dcbung schauen wir uns noch einmal genauer an, was Mediane sind, wie man sie algorithmisch bestimmen kann und in welcher Laufzeit das m\u00f6glich ist.", "type": 1, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/97_Bsp_Mediane-Beispiel.mp4"}, {"id": 108, "name": "kd-B\u00e4ume (Exkurs)", "description": "kd-B\u00e4ume sind B\u00e4ume mit einer h\u00f6heren Dimension. Mithilfe der Idee den Baum abwechselnd nach x- und y-Koordinate zu durchsuchen und so zu konstruieren entsteht ein Algorithmus mit dem man mehrdimensionale Suchb\u00e4ume erstellen kann. Auch schauen wir uns an, wie man in einem solchen Baum sucht.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/98_Def_kd-B\u00e4ume-Exkurs.mp4"}, {"id": 109, "name": "(parallelisierte) Sortierverfahren", "description": "In dieser Vorlesung beenden wir das Kapitel zum Thema Sortieralgorithmen und werfen abschlie\u00dfend einen Blick auf parallelisierte Sortierverfahren.", "type": 0}, {"id": 110, "name": "Bubble-Sort Beispiel", "description": "Einige Beispiele, wie Bubble-Sort funktioniert, inklusive einiger verschiedener Darstellungen/Animationen und dem Vergleich mit Quick-Sort.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/100_Alg_Bubble-Sort-Beispiel.mp4"}, {"id": 111, "name": "paralleles Bubble-Sort", "description": "Mithilfe von Parallelisierung l\u00e4sst sich Bubble-Sort auch in linearer Zeit umsetzen. Die Idee daf\u00fcr wird hier einmal erl\u00e4utert.", "type": 2, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/101_Def_Paralleles-Bubble-Sort.mp4"}, {"id": 112, "name": "Bogo-Sort", "description": "Bogo-Sort ist ein eher als Scherz gemeinter Sortieralgorithmus. Dabei wird die gegebene Menge solange zuf\u00e4llig durchpermutiert und \u00fcberpr\u00fcft bis die korrekte L\u00f6sung erreicht ist.", "type": 4, "video": "https://www.ibr.cs.tu-bs.de/alg/videos/aud/ws2122/102_Alg_Bogo-Sort.mp4"}, {"id": 113, "name": "Zusammenfassung", "description": "Diese Vorlesung markiert das Ende der Vorlesungszeit. Wir gehen deshalb noch einmal R\u00fcckblickend \u00fcber die verschiedenen Themen die in den vergangenen Monaten behandelt wurden und geben die M\u00f6glichkeit Fragen zu stellen.", "type": 0}, {"id": 114, "name": "Klausurvorbereitung", "description": "Die letzte gro\u00dfe \u00dcbung von AuD mit Spiel, Spa\u00df, Spannung und vielen Fragen.", "type": 3}, {"id": 115, "name": "Einleitung", "description": "Eine Einleitung in die Welt der Algorithmen und Datenstrukturen. Was ist ein Algorithmus und wozu wird er ben\u00f6tigt? Und was haben Datenstrukturen damit zu tun?", "type": 5}, {"id": 116, "name": "Graphen", "description": "Graphen sind eine wichtige Darstellungsform von Daten in der Informatik. Wie Graphen aufgebaut sind und was man alles mit ihnen machen kann wird in diesem Kapitel behandelt.", "type": 5}, {"id": 117, "name": "Suche in Graphen", "description": "Die Suche in Graphen ist ein wichtiges Werkzeug. Allerdings gibt es mehrere Wege, welche zum Ziel f\u00fchren und nicht alle funktionieren gleich gut. Wie man effizient in Graphen sucht wird in diesem Kapitel behandelt.", "type": 5}, {"id": 118, "name": "Dynamische Datenstrukturen", "description": "Im Laufe der Vorlesung wurden bereits einige Datenstrukturen vorgestellt. In diesem Kapitel besch\u00e4ftigen wir uns mit einer weiteren Klasse der Datenstrukturen, den dynamischen Datenstrukturen. Und damit, welche M\u00f6glichkeiten sie bieten.", "type": 5}, {"id": 119, "name": "Sortieren", "description": "Neben der Suche von Elementen spielt auch das Sortieren in der Informatik eine gro\u00dfe Rolle. Wie man das macht wird in diesem Kapitel behandelt.", "type": 5}, {"id": 120, "name": "AuD1", "description": "Algorithmen und Datenstrukturen 1", "type": 5}], "links": [{"source": 0, "target": 115}, {"source": 1, "target": 0}, {"source": 2, "target": 0}, {"source": 3, "target": 115}, {"source": 3, "target": 5}, {"source": 4, "target": 0}, {"source": 5, "target": 115}, {"source": 6, "target": 5}, {"source": 7, "target": 115}, {"source": 8, "target": 115}, {"source": 8, "target": 7}, {"source": 9, "target": 116}, {"source": 10, "target": 13}, {"source": 11, "target": 116}, {"source": 11, "target": 14}, {"source": 11, "target": 20}, {"source": 11, "target": 22}, {"source": 11, "target": 23}, {"source": 12, "target": 13}, {"source": 12, "target": 14}, {"source": 13, "target": 116}, {"source": 14, "target": 116}, {"source": 15, "target": 116}, {"source": 16, "target": 15}, {"source": 17, "target": 15}, {"source": 18, "target": 15}, {"source": 19, "target": 15}, {"source": 20, "target": 21}, {"source": 21, "target": 116}, {"source": 22, "target": 21}, {"source": 23, "target": 21}, {"source": 24, "target": 117}, {"source": 25, "target": 117}, {"source": 25, "target": 15}, {"source": 26, "target": 27}, {"source": 27, "target": 117}, {"source": 28, "target": 29}, {"source": 28, "target": 30}, {"source": 28, "target": 31}, {"source": 28, "target": 32}, {"source": 28, "target": 33}, {"source": 29, "target": 117}, {"source": 30, "target": 117}, {"source": 31, "target": 117}, {"source": 31, "target": 27}, {"source": 32, "target": 117}, {"source": 32, "target": 27}, {"source": 33, "target": 34}, {"source": 33, "target": 35}, {"source": 34, "target": 117}, {"source": 35, "target": 117}, {"source": 36, "target": 35}, {"source": 36, "target": 37}, {"source": 37, "target": 117}, {"source": 38, "target": 32}, {"source": 38, "target": 31}, {"source": 38, "target": 27}, {"source": 39, "target": 31}, {"source": 39, "target": 27}, {"source": 40, "target": 32}, {"source": 40, "target": 27}, {"source": 41, "target": 37}, {"source": 42, "target": 117}, {"source": 43, "target": 37}, {"source": 43, "target": 31}, {"source": 43, "target": 32}, {"source": 44, "target": 25}, {"source": 44, "target": 46}, {"source": 45, "target": 27}, {"source": 45, "target": 35}, {"source": 46, "target": 28}, {"source": 46, "target": 47}, {"source": 47, "target": 118}, {"source": 48, "target": 118}, {"source": 49, "target": 48}, {"source": 50, "target": 51}, {"source": 50, "target": 52}, {"source": 51, "target": 118}, {"source": 52, "target": 118}, {"source": 52, "target": 51}, {"source": 53, "target": 52}, {"source": 54, "target": 52}, {"source": 55, "target": 52}, {"source": 56, "target": 52}, {"source": 57, "target": 52}, {"source": 58, "target": 59}, {"source": 59, "target": 51}, {"source": 59, "target": 118}, {"source": 60, "target": 59}, {"source": 61, "target": 118}, {"source": 61, "target": 60}, {"source": 61, "target": 59}, {"source": 62, "target": 118}, {"source": 63, "target": 25}, {"source": 64, "target": 63}, {"source": 64, "target": 25}, {"source": 65, "target": 63}, {"source": 65, "target": 25}, {"source": 66, "target": 47}, {"source": 66, "target": 48}, {"source": 66, "target": 51}, {"source": 66, "target": 52}, {"source": 66, "target": 59}, {"source": 66, "target": 61}, {"source": 67, "target": 22}, {"source": 67, "target": 47}, {"source": 68, "target": 52}, {"source": 68, "target": 51}, {"source": 69, "target": 61}, {"source": 69, "target": 59}, {"source": 70, "target": 50}, {"source": 70, "target": 71}, {"source": 70, "target": 72}, {"source": 70, "target": 73}, {"source": 71, "target": 58}, {"source": 71, "target": 51}, {"source": 72, "target": 58}, {"source": 72, "target": 51}, {"source": 73, "target": 118}, {"source": 74, "target": 75}, {"source": 74, "target": 76}, {"source": 75, "target": 119}, {"source": 76, "target": 77}, {"source": 76, "target": 78}, {"source": 77, "target": 119}, {"source": 78, "target": 119}, {"source": 79, "target": 78}, {"source": 80, "target": 78}, {"source": 80, "target": 62}, {"source": 81, "target": 119}, {"source": 82, "target": 81}, {"source": 83, "target": 75}, {"source": 83, "target": 81}, {"source": 84, "target": 75}, {"source": 85, "target": 81}, {"source": 86, "target": 73}, {"source": 86, "target": 87}, {"source": 86, "target": 119}, {"source": 86, "target": 84}, {"source": 87, "target": 86}, {"source": 88, "target": 119}, {"source": 88, "target": 86}, {"source": 88, "target": 84}, {"source": 89, "target": 90}, {"source": 89, "target": 91}, {"source": 89, "target": 92}, {"source": 89, "target": 93}, {"source": 90, "target": 119}, {"source": 91, "target": 119}, {"source": 92, "target": 119}, {"source": 92, "target": 91}, {"source": 93, "target": 119}, {"source": 94, "target": 93}, {"source": 95, "target": 96}, {"source": 96, "target": 119}, {"source": 97, "target": 96}, {"source": 97, "target": 81}, {"source": 98, "target": 100}, {"source": 98, "target": 101}, {"source": 99, "target": 98}, {"source": 100, "target": 119}, {"source": 101, "target": 119}, {"source": 101, "target": 100}, {"source": 102, "target": 103}, {"source": 102, "target": 104}, {"source": 103, "target": 119}, {"source": 104, "target": 119}, {"source": 105, "target": 96}, {"source": 105, "target": 100}, {"source": 105, "target": 101}, {"source": 106, "target": 96}, {"source": 107, "target": 100}, {"source": 107, "target": 101}, {"source": 108, "target": 119}, {"source": 108, "target": 51}, {"source": 108, "target": 105}, {"source": 109, "target": 110}, {"source": 109, "target": 111}, {"source": 109, "target": 112}, {"source": 110, "target": 119}, {"source": 110, "target": 96}, {"source": 111, "target": 110}, {"source": 112, "target": 119}, {"source": 113, "target": 120}, {"source": 114, "target": 113}, {"source": 115, "target": 120}, {"source": 116, "target": 120}, {"source": 117, "target": 120}, {"source": 118, "target": 120}, {"source": 119, "target": 120}], "objectGroups": [{"id": 0, "name": "Vorlesung", "color": {"r": 104, "g": 169, "b": 77}}, {"id": 1, "name": "Beispiel", "color": {"r": 102, "g": 75, "b": 154}}, {"id": 2, "name": "Definition", "color": {"r": 41, "g": 171, "b": 226}}, {"id": 3, "name": "\u00dcbung", "color": {"r": 224, "g": 133, "b": 35}}, {"id": 4, "name": "Algorithmus", "color": {"r": 214, "g": 207, "b": 126}}, {"id": 5, "name": "Kapitel", "color": {"r": 239, "g": 65, "b": 35}}]}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment