Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27
|
|
- Heinz Haupt
- vor 6 Jahren
- Abrufe
Transkript
1 Datenstrukturen: Mathematische Grundlagen 26. Juli / 27
2 Asymptotik Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle n n 0 gilt: f wächst höchstens so schnell wie g. f = Ω(g) g = O(f ) : f wächst mindestens so schnell wie g. f = Θ(g)? = O(??) und? = O(??) : f und g wachsen gleich schnell. Die Klein-Oh Notation: f = o(g) lim n?(n)??(n) = 0: f wächst langsamer als g. 26. Juli / 27
3 Die geometrische Reihe und die Summe der kten Potenzen Die geometrische Reihe: Für a 1 gilt k i=0 ai = ak+1 1 a 1. k sei eine natürliche Zahl. Wie stark wächst die Summe n S k (n) = i k? Sk (n) = n i=1 ik n i=1 nk = n k+1. Also ist S k (n) = O(n k+1 ). i=1 S k (n) = n i=1 ik n i=n/2 ik n i=n/2 (n/2)k (n/2) k+1. Also ist S k (n) = Ω(n k+1 ). Für jede natürliche Zahl k gilt S k (n) = n i k = Θ(n k+1 ) i=1 26. Juli / 27
4 Asymptotik und Grenzwerte Der Grenzwert der Folge f (n) g(n) möge existieren und es sei f (n) lim n g(n) = c. 1 Wenn c = 0, dann ist f = o(g). 2 Wenn 0 < c <, dann ist f = Θ(g). 3 Wenn 0 c <, dann ist f = O(g) und g = Ω(f ). Wenn wir Grenzwerte beherrschen, dann beherrschen wir die asymptotische Notation (fast). 26. Juli / 27
5 Der Logarithmus Es gelte a, b > 1 und x sei eine reelle Zahl. Dann ist log a x = y a y = x. 1 log a (x y) = log a? + log a??. 2 log a (x y ) = y log a (x). 3 a log a x = x. 4 log a x = (log a?) (log b??). b log a x = x?, loga n = Θ(log b n): Die Basis wird das Wachstum des Logarithmus nicht beeinflussen, wenn sie nicht von n abhängt. 5 Für jede noch so kleine Potenz ɛ > 0 ist log a n = o(n ɛ ). Der Logarithmus ist eine sehr, sehr langsam wachsende Funktion. 26. Juli / 27
6 Das Lösen von Rekursionsgleichungen (1/3) Für ein rekursives Programm ist die Rekursionsgleichung ( n ) T (1) = c, T (n) = a T + f (n) b für eine Potenz n der natürlichen Zahl b > 1 zu lösen. Ganz, ganz wichtig: Was entspricht den Parametern a, b and was entspricht der Funktion f (n) in einem rekursiven Programm? Was ist überhaupt die Rolle von n? 26. Juli / 27
7 Das Lösen von Rekursionsgleichungen (2/3) Die Rekursion T (1) = c, T (n) = a T ( n b ) + f (n) ist für eine Potenz n der natürlichen Zahl b > 1 zu lösen. Dann gilt für a 1, c > 0: 1 Wenn f (n) = O ( n (log b a) ε) für eine positive Konstante ε > 0, dann ist T (n) = Θ(n log b a ). 2 Wenn f (n) = Θ(n log b a ), dann ist T (n) = Θ(n log b a log b n). 3 Wenn f (n) = Ω ( n (log a)+ε) b für eine Konstante ε > 0 und a f ( ) n b αf (n) für eine Konstante α < 1, dann ist T (n) = Θ(f (n)). Vergleiche stets den Overhead f (n) mit a log b n = n log b a. Warum ist das nicht überraschend? Was entspricht der Zahl a log b n? 26. Juli / 27
8 Das Lösen von Rekursionsgleichungen (3/3) Wenn die Rekursionsgleichung nicht vom obigen Typ ist, wie etwa die Rekursionsgleichung T (1) = 1, T (n) = 2 T (n 1) + 1 für die Anzahl der Züge im Türme von Hanoi Spiel. Dann: a) Expandiere die Rekursion mehrmals, um eine Vermutung über die allgemeine Form der expandierten Rekursion zu erhalten. b) Eliminiere die T-Terme und zuletzt c) bestimme die asymptotische Lösung. Nicht das Mastertheorem ist zentral, sondern das Verständnis des obigen Lösungsprinzips. Übrigens, was ist die asymptotische Lösung der Rekursionsgleichung T (1) = 1, T (n) = T (n 1) + n 2? 26. Juli / 27
9 Keller, Schlangen und Listen 26. Juli / 27
10 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden Datenmenge dynamisch an. - Achtung: Lookup wird durch die lineare Suche implementiert und benötigt eine Laufzeit proportional zur Länge der Liste! Fürchterlich?!? Gleiches gilt für die Insert-Operation (wenn die Schlüssel sortiert abgespeichert werden) wie auch für die Remove-Operation. Die Adjazenzliste für Graphen ist eine wichtige Anwendung. Viele Graph-Algorithmen (wie etwa Tiefen- oder Breitensuche) müssen alle Nachbarn besuchen: Die Abspeicherung der Nachbarn in einer Liste ist optimal! 26. Juli / 27
11 Keller und Schlangen Keller unterstützen die Operationen Insert und Remove (des jüngsten Schlüssels). + Beide Operationen gelingen in Konstantzeit! + Eine wichtige Anwendung ist die Implementierung der Rekursion. Schlangen modellieren Warteschlangen und unterstützen die Operationen Insert und Remove (des ältesten Schlüssels). + Beide Operationen gelingen in Konstantzeit! + Breitensuche wird mit Schlangen implementiert. 26. Juli / 27
12 Prioritätswarteschlangen 26. Juli / 27
13 Insert und Delete_Max Prioritätswarteschlangen unterstützen Warteschlangen mit Prioritäten, nämlich die Operationen Insert und Delete_Max. + Ein Heap implementiert beide Operationen in logarithmischer Zeit. - Lookup ist extrem langsam! + Eine wichtige Anwendung ist Dijkstra s Algorithmus für das Single- Source-Shortest-Path Problem. 26. Juli / 27
14 Heaps: Nutzen und Fluch der Heapordnung Ein Heap wird durch Heapstruktur und Heapordnung definiert. Was bedeuten diese Begriffe? Die Funktionen Repair_up und Repair_down stellen die Heapordnung wieder her. Was genau tun diese Funktionen? Ein Heap implementiert eine Prioritätswarteschlange durch ein Array: Wie navigiert man im Heap-Array? Wo findet man den Elternknoten, wo die Kinder, wo die Wurzel? Warum ist die Lookup-Operation so schwierig für Heaps, warum sind Insert und Delete_Max einfach? 26. Juli / 27
15 Bäume 26. Juli / 27
16 Die wichtigen Begriffe 1 Wie definiert man ungerichtete Bäume und wie gerichtete Bäume und wozu benutzt man eigentlich Bäume? Zur Veranschaulichung (Rekursionsbäume, Verzeichnisbäume, Vorfahrenbäume,...) Zur Implementierung von Wörterbüchern, für die Kompilierung, Was ist die Tiefe und was ist die Höhe eines Baums? Und wie berechnet man Tiefe und Höhe? 3 Was ist ein Präorder-, Inorder oder Postorder-Durchlauf? Und wie führt man diese Durchläufe aus? 4 Wie implementiert man Bäume? Man verwendet ein Eltern-Array, die Kind-Geschwister- oder, falls anwendbar, die Binärbaum-Darstellung. Was sind die Vor- und Nachteile der einzelnen Implementierungen? 26. Juli / 27
17 Präorder void praeorder (Knoten *p) { Knoten *q; if??????? { cout «p wert; for (q=p LKind; q!= null; q=q RGeschwister)???????? 1 Und wie implementiert man Präorder nicht-rekursiv? 2 Wie implementiert man Postorder? 26. Juli / 27
18 Welcher Knoten wird direkt nach v besucht? Präorder: Wenn v kein Blatt ist:?????????? Wenn v ein Blatt ist:????????? Postorder: Wenn v einen rechten Geschwisterknoten besitzt:???????? Wenn v keinen rechten Geschwisterknoten besitzt:????????? 26. Juli / 27
19 Graphen 26. Juli / 27
20 Die wichtigen Begriffe und Methoden Ungerichtete und gerichtete Graphen modellieren Verkehrsnetze, Netzwerke, Schaltungen, den Webgraphen... Für viele Anwendungen ist die Graphdarstellung durch Adjazenzlisten maßgeschneidert. Warum? Begriffe wie Zusammenhangskomponenten, Wege, Distanz zwischen Knoten und azyklische Graphen sind zentral. Wie berechnet man Zusammenhangskomponenten, wie stellt man fest, ob ein Graph azyklisch ist, und wie führt man eine topologische Sortierung durch? Tiefen- und Breitensuche sind wichtige Methoden. Und wie funktionieren diese Algorithmen? 26. Juli / 27
21 Tiefen- und Breitensuche Welche Kantentypen erzeugt Tiefensuche für ungerichtete Graphen und welche Kantentypen für gerichtete Graphen? Warum interessiert man sich denn überhaupt für Kantentypen und was kann man mit Tiefensuche so alles anstellen? Wie wird der Wald der Tiefensuche berechnet? Wann ist eine Kante eine Baum-, Vorwärts-, Rückwärts- oder Querkante? Wie wird der Baum der Breitensuche berechnet? Warum ist dieser Baum denn wichtig? 26. Juli / 27
22 Eine automatische Erkennung der Kantentypen Wir benutzen zwei integer-arrays Anfang und Ende als Uhren, um den Zeitpunkt des Beginns und des Endes des Besuchs festzuhalten. Anfangnr=Endenr=0; void tsuche(int v) {Knoten *p; Anfang[v] = ++Anfangnr; for (p = A[v]; p!= 0; p = p->next) if (!Anfang[p->name]) tsuche(p->name); Ende[v] = ++Endenr; } - e = (u, v) ist eine Vorwärtskante Anfang [u]? Anfang [v] und e = (u, v) ist keine Baumkante. - e = (u, v) ist eine Rückwärtskante Anfang [u]? Anfang [v] und Ende [u]? Ende [v]. - e = (u, v) ist eine Querkante Anfang [u]? Anfang [v] und Ende [u]? Ende [v]. 26. Juli / 27
23 Wörterbücher 26. Juli / 27
24 Was muss ich wissen? 1. Welche Operationen muss ein Wörterbuch unterstützen? 2. Welche wichtigen Datenstrukturen implementieren Wörterbücher? (a) Binäre Suchbäume (b) AVL Bäume (c) (a, b)-bäume (d) Hashing mit Verkettung mit offener Adressierung Welche Datenstruktur wählt ein Angsthase? ein Profi mit einigermaßen guten Nerven? ein Profi bei extern gespeicherten Daten? ein Chaot? 26. Juli / 27
25 Hands on Wie funktioniert (a) ein binärer Suchbaum unter Lookup-, Insert- und Remove-Operationen? (b) ein AVL-Baum unter Lookup- und Insert-Operationen? (c) ein (a, b)-baum unter Lookup-, Insert- und Remove-Operationen? (d) Hashing mit Verkettung, bzw. Hashing mit offener Adressierung unter Lookup-, Insert- und Remove-Operationen? 26. Juli / 27
26 Was war das nochmal? (a) AVL-Bäume: Was sind Rotationen? Bei der Insert-Operation traten vier Fälle auf. Welche? (b) (a, b)-bäume: Wenn ein Knoten in der Insert-Operation zu viele Schlüssel besitzt, dann... Wenn ein Knoten in der Remove-Operation zu wenige Schlüssel besitzt, dann... Wie groß ist die Tiefe mindestens und höchstens in Abhängigkeit von n, a und b? Achtung: a und b sind keine Konstanten. (c) Hashing: Welche Hashfunktion wählt man in Hashing mit Verkettung? Wie funktioniert das lineare Austesten und das doppelte Hashing? Wie ist der Auslastungfaktor definiert? Wie lange dauert eine erfolglose Suche für Hashing mit Verkettung, bzw. Hashing mit offener Adressierung? 26. Juli / 27
27 Unser Werkzeugkasten (a) Listen (b) Stacks (c) Queues, (d) Bäume und Graphen (e) Heaps, (f) Binäre Suchbäume, (g) AVL-Bäume, (h) (a, b)-bäume, (i) Hashing. Welches Werkzeug für welche Aufgabe? Für neue Aufgabenstellungen muss ich neue Datenstrukturen aus alten bauen! 26. Juli / 27
Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14
Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,
MehrWie wird ein Graph dargestellt?
Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen
Mehr, i =, i 2 = 1 2. f (n)
Laufzeitanalyse Einige Formeln: n c i = cn+1 n n 1 c 1, für c 1 n(n + 1), i =, i = 1 i=0 i=0 3 n3 + 1 n + 1 6 n i=0 O-Notation: f = O(g) c > 0 n 0 > 0 n n 0 : f (n) c g(n) f = Ω(g) g = O( f ) f = Θ(g)
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
Mehr(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
MehrKeller, Schlangen und Listen. Kapitel 3: Elementare Datenstrukturen Einfach verkettete Listen 1 / 103
Keller, Schlangen und Listen Kapitel 3: Elementare Datenstrukturen Einfach verkettete Listen 1 / 103 Einfach verkettete Listen Eine Zeiger-Implementierung von einfach-verketteten Listen, also Listen mit
MehrKeller, Schlangen und Listen. 19. Juni / 113
Keller, Schlangen und Listen 19. Juni 2017 1 / 113 Einfach verkettete Listen Eine Zeiger-Implementierung von einfach-verketteten Listen, also Listen mit Vorwärtszeigern. //Deklarationsdatei liste.h fuer
MehrGrundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig
Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrInformatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne
MehrSortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen Jedes Programm verwendet Datenstrukturen und Algorithmen um seine Aufgabe zu erfüllen Diese müssen offenbar zunächst sorgfältig dem speziellen Problem entsprechend ausgewählt
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013
MehrV. Claus, Juli 2005 Einführung in die Informatik II 45
Um die Größenordnung einer reellwertigen oder ganzzahligen Funktion zu beschreiben, verwenden wir die so genannten Landau-Symbole (nach dem deutschen Mathematiker Edmund Landau, 1877-1938). Hierbei werden
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Einfach verkettete Listen Mariano Zelke Datenstrukturen 2/32 Eine Zeiger-Implementierung von einfach verketteten Listen, also Listen mit Vorwärtszeigern.
MehrKlausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min
TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen
MehrDefinition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.
3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls
MehrMathematische Grundlagen Kurz & Gut 1. 1 Frei nach Folien von Alex Schickedanz und David Veith
Mathematische Grundlagen Kurz & Gut 1 1 Frei nach Folien von Alex Schickedanz und David Veith Mathematische Grundlagen Kurz & Gut 1 Hinweise Hier werden Grundlagen der Datenstrukturen-Vorlesung rekapituliert.
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
MehrInhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85
Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil
MehrBäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe
Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe S. Staab, Informatik für IM II; Folien nach D. Saupe, sowie W. Küchlin, A.
MehrAbstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
Mehra) Geben Sie für die folgenden Paare von Mengen jeweils die Teilmengenbeziehung mit Hilfe der Symbole, und = an. lässt sich wie folgt umformen:
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SoSe 0 Klausur 0.09.0 Christian Dehnert Jonathan Heinen Thomas Ströder Sabrina von Styp Aufgabe (O-Notation: (9 + 4 + 7 = 0 Punkte a
Mehr8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 13. Übung minimale Spannbäume, topologische Sortierung, AVL-Bäume Clemens Lang Übungen zu AuD 4. Februar 2010 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen
MehrAlgorithmen und Datenstrukturen 13
19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,
MehrDatenstrukturen und Algorithmen 2. Klausur SS 2001
UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................
MehrGraphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47
Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford
Mehrlim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Prioritätswarteschlangen Maike Buchin 18. und 23.5.2017 Prioritätswarteschlange Häufiges Szenario: dynamische Menge von Objekten mit Prioritäten, z.b. Aufgaben, Prozesse, in der
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
MehrInformatik II: Algorithmen und Datenstrukturen SS 2015
Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrAlgorithmen und Datenstrukturen 2. Dynamische Datenstrukturen
Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl
MehrPro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik
Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:
MehrInhaltsverzeichnis. Teil 1 Grundlagen 23
Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1
MehrDatenstrukturen und Algorithmen D-INFK
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
MehrRobert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky
Robert Sedgewick Algorithmen in Java Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen Java-Beratung durch Michael Schidlowsky 3., überarbeitete Auflage \ PEARSON ein Imprint von Pearson Education München
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester
MehrKlausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
MehrNotation für das asymptotische Verhalten von Funktionen
Vorbemerkungen: Notation für das asymptotische Verhalten von Funktionen 1. Aussagen über die Komplexität von Algorithmen und von Problemen sollen (in der Regel) unabhängig von speziellen Maschinenmodellen
MehrBeispiellösung zur Prüfung Datenstrukturen und Algorithmen D-INFK
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
MehrRobert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky
Robert Sedgewick Algorithmen in Java»il 1-4 Grundlagen Datenstrykturen Sortleren Suchen java-beratung durch Michael Schidlowsky 3., überarbeitete Auflage PEARSON ein Imprint von Pearson Education München
MehrProgrammierkurs Python
Programmierkurs Python Stefan Thater Michaela Regneri 2010-0-29 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen für Graphen Tiefen- und Breitensuche Nächste Woche: mehr Algorithmen 2 Was
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
MehrTutoraufgabe 1 (Starke Zusammenhangskomponenten):
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Datenstrukturen und Algorithmen SS1 Übungsblatt (Abgabe 4.0.01) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder
MehrProgrammierkurs Python II
Programmierkurs Python II Stefan Thater & Michaela Regneri FR.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 011 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrAufgaben zur Klausurvorbereitung
Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014
MehrFerienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Organisatorisches Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD
MehrDatenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
MehrModul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V9/11
Modul: Programmierung B-PRG Grundlagen der Programmierung Teil V9/ Graphen und Bäume Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (2) Rückblick:
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Marc Bux, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft RUD
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
MehrAsymptotik und Laufzeitanalyse
und Vorkurs Informatik SoSe13 08. April 2013 und Algorithmen = Rechenvorschriften Wir fragen uns: Ist der Algorithmus effizient? welcher Algorithmus löst das Problem schneller? wie lange braucht der Algorithmus
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrSuchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS
Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 309 Allgemeines Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 310
MehrHeapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
Mehr2. Effizienz von Algorithmen
Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]
MehrBäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe
Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe Bäume (trees) können als eine Verallgemeinerung von Listen angesehen werden
MehrInformatik B Sommersemester Musterlösung zur Klausur vom
Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =
MehrBinäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrAlgorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
MehrLösungsvorschlag 1. Vorlesung Algorithmentechnik im WS 09/10
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Lösungsvorschlag Vorlesung Algorithmentechnik im WS 09/0 Problem : Dynamisches Array (Amortisierte Analyse) [vgl. Kapitel 0.3 im Skript]
Mehr8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente
MehrTeil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1
Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene
Mehr1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
MehrDer Rekursionsbaum hat
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Klausur.09.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Laufzeitanalyse): a) Beweisen oder widerlegen Sie: log(n) O( n) ( + + + = 9
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrAlgorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor
Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor Die Klausur besteht aus 6 Aufgaben und umfasst 60 Punkte. Bitte schreiben Sie die Lösungen auf die Aufgabenblätter. Vergessen
MehrWiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.
Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten
Mehr