Trace:
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
repds15:logbuch [2015/09/23 19:22] – [Tag 3] mario | repds15:logbuch [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Logbuch ====== | ||
- | ===== Tag 1 ===== | ||
- | * Website der Vorlesung: http:// | ||
- | * Logbuch der Vorlesung: http:// | ||
- | * Literatursuche Uni-Bibliothek: | ||
- | * Username und Passwort (wenn noch nicht geändert) http:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * Vokabelliste anfertigen, Übersicht verschaffen, | ||
- | * " | ||
- | * Online-Whiteboard: | ||
- | * [[repds15: | ||
- | * [[https:// | ||
- | * [[http:// | ||
- | * [[repds15: | ||
- | * Themen, die wir nur ganz schnell angeschnitten haben, werden hier auf der Website ergänzt. Ich bemühe mich um besseres Zeitmanagement, | ||
- | * $f = O(g)$ heißt "f ist asymptotisch $\leq$ g" (bzw. f wächst höchstens so schnell wie g). | ||
- | * $f = \Omega(g)$ heißt "f ist asymptotisch $\geq$ g" (bzw. f wächst mindestens so schnell wie g). | ||
- | * $f = \Theta(g)$ heißt "f und g wachsen asymptotisch gleich schnell" | ||
- | * $f = o(g)$ heißt $f << g$ bzw. $\lim_{n \to \infty} \frac{f(n)}{g(n)} = 0$ | ||
- | * $f = \omega(g)$ heißt $f >> g$ bzw. $\lim_{n \to \infty} \frac{f(n)}{g(n)} = \infty$ | ||
- | * Laufzeit-Hierarchie von $\Theta(1)$ bis $\Theta(n^n)$ | ||
- | * $n! = o(n^n)$, aber $\log(n!) = \Theta(\log(n^n)) = \Theta(n \log(n))$. **Achtung**: | ||
- | * Master-Theorem: | ||
- | * Zu Arrays, Listen, Stacks und Queues findet ihr Pseudocodes bei den [[repds15: | ||
- | |||
- | ===== Tag 2 ===== | ||
- | * Pseudocode-Beispiele zu Arrays, Listen, Stacks und Queues besprochen | ||
- | * [[https:// | ||
- | * Bei Listen immer auf den current-Zeiger aufpassen: '' | ||
- | * Stack durch eine Liste simuliert: [[https:// | ||
- | * Datenstrukturen für Bäume, Anzahl der Knoten in einem vollständigen binären Baum | ||
- | * Die rekursive Definition eines Baums (Basisfall: Blatt, Rekursionsfall: | ||
- | < | ||
- | def rekursive_baumfunktion(Knoten v): | ||
- | if "v ist ein Blatt": | ||
- | Rechne irgendeinen Wert '' | ||
- | return value | ||
- | else // Rekursionsfall | ||
- | rufe rekursive_baumfunktion(...) rekursiv für die Kinder von v auf | ||
- | benutze den Rückgabewert des rekursiven Aufrufs, um einen Wert '' | ||
- | return value | ||
- | </ | ||
- | * Beispiel für ein rekursives Programm auf Bäumen | ||
- | * [[https:// | ||
- | * Topologische Sortierung | ||
- | * Datenstrukturen für Graphen | ||
- | * Breitensuche (BFS), Tiefensuche (DFS) auf Bäumen und allgemeinen Graphen: Wie hängt die Laufzeit von der verwendeten Datenstruktur ab? | ||
- | * Kantentypen: | ||
- | * Heaps: Darstellung eines Heaps als Array. '' | ||
- | * Heaps können zum Sortieren verwendet werden, siehe Heapsort. | ||
- | |||
- | ===== Tag 3 ===== | ||
- | |||
- | * (2, | ||
- | * Achtung auch bei anderen Wörterbuch-Datenstrukturen aus der Visualisierungswebsite. Dort können Schlüssel mehrfach eingefügt werden. Das geht gemäß der Konvention aus der Vorlesung jedoch nicht. Es können noch weitere Unterschiede vorhanden sein, also glaubt nicht blind der Animation. | ||
- | * Binäre Suchbäume, einfügen, löschen, Best-Case- und Worst-Case-Beispiele (Wie sehen solche Folgen aus?) | ||
- | * AVL-Bäume, einfügen, Rotationen, Zick und Zack | ||
- | * (a, | ||
- | * Hashing | ||
- | - mit Verkettung: Worst-Case-Beispiele | ||
- | - mit offener Adressierung | ||
- | * mit linearem Austesten | ||
- | * doppeltes Hashing | ||
- | * Rekursive Programmierung, | ||
- | * Laufzeitanalyse: | ||
- | * Datenstrukturen entwerfen, Bitvektor, Projekte bestehend aus mehreren Aufgaben nach Bearbeitungszeit priorisieren mithilfe eines Min-Heaps | ||
- | * [[repds15: |