Algorithmen und Datenstrukturen 3. Vorlesung
|
|
- Leander Förstner
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 3. Vorlesung Martin Dietzfelbinger 18. April 2005 Stacks Queues Listen... Datentypen und Datenstrukturen FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Spezifikation des Datentyps Stack über U 1. Signatur: Sorten: Keys Stacks Boolean Operationen: empty: Stacks push: Stacks Keys Stacks pop: Stacks Stacks top: Stacks Keys isempty: Stacks Boolean Mathematisches Modell Sorten: Keys: (nichtleere) Menge U (Parameter) Stacks: U < = Seq(U) wo Seq(U) = {(a 1,...,a n ) n N,a 1,...,a n U} Boolean: {true, false} Operationen: FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
2 empty(()) = () push((a 1,...,a n ),x) := (x,a 1,...,a n ) { (a2,...,a n ), falls n 1 pop((a 1,...,a n )) := undefiniert, falls n = 0 { a1, falls n 1 top((a 1,...,a n )) := undefiniert, falls n = 0 { false, falls n 1 isempty((a 1,...,a n )) := true, falls n = 0 Implementierungsmöglichkeiten Array A[1..m] of Keys und Pegelvariable p: int (einfach) verkettete lineare Liste FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Listenimplementierung Siehe GdP 1, 8. Vorlesung, Organisationsform 1 s: 1 2 a a (Das Symbol steht fur " den Nullzeiger. ) empty: Kreiere leere Liste. push(x): Füge neues Listenelement mit Eintrag x ein. pop: Entferne erstes Listenelement (falls vorhanden) top: Gib Inhalt des ersten Listenelements aus (falls vorhanden) isempty: Falls Liste leer: Ausgabe true, sonst false Einzige Fehlermöglichkeit: Speicher-Überlauf. a n Korrektheit der Listenimplementierung Behauptung: Die Listenimplementierung erzeugt genau dieselbe Ausgabefolge wie das mathematische Modell, solange weder im mathematischen Modell ein Fehler (top oder pop auf leerem Stack) auftritt noch ein Laufzeitfehler Speicherüberlauf auftritt. Beweis: Man zeigt per Induktion über i, dass nach Ausführen der Operation Op i folgendes gilt: Die Einträge in der Liste sind genau die Einträge in s i die Liste ist eine präzise Darstellung von s i. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
3 Zeitaufwand bei Listenimplementierung Behauptung: Bei der Listenimplementierung hat jede einzelne Operation Kosten O(1). Das ist klar. Kosteneinheit allerdings: Allokation eines Listenelements Systemaufruf ( malloc in C) um einiges teurer als Arrayzugriff. Vorteile der Arrayimplementierung: Sequentieller Zugriff im Speicher. Listenimplementierung benötigt zusätzlichen Speicherplatz für Zeiger. Arrayimplementierung ohne Platzprobleme? Verdoppelungsstrategie In push(x): Bei Überlaufen des Arrays A nicht einen Laufzeitfehler (oder eine exception) generieren, sondern ein neues, doppelt so großes Array AA allokieren. Variable m: int enthält aktuelle Größe m des Arrays. Einträge aus A nach AA kopieren. AA in A umbenennen. Kosten: c m, wo m = aktuelle Zahl der Einträge. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Kostenanalyse bei Verdoppelungsstrategie: Operationenfolge Op 0 = empty, Op 1,..., Op N Arraygröße am Anfang: m 0. Jede Operation hat Kosten O(1), außer wenn die Arraygröße von m 0 2 i 1 auf m 0 2 i wächst. Hier entstehen Kosten Θ(m 0 2 i 1 ). k := Anzahl der push-operationen in Op 1,..., Op N Zahl der Einträge immer k, also bei Verdopplung m 0 2 i 1 m 0 2 i : m 0 2 i 1 < k. Sei L maximal mit m 0 2 L 1 < k. Gesamtkosten für die Verdopplungen also: O(m 0 2 i 1 ) 1 i L = O ( m 0 ( L 1 ) ) = O ( m 0 2 L) = O(k). Gesamtkosten: N O(1) + O(k) = O(N + k) = O(N). FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
4 Satz Wenn ein Stack mit Arrays und der Verdoppelungsstrategie implementiert wird, betragen die Gesamtkosten für N Operationen O(N). Bemerkung: Bei der Verdoppelungsstrategie gilt weiter: Der gesamte Platzbedarf ist O(k), wenn k die maximale je erreichte Stackhöhe ist. Selbst wenn der Speicher nie bereinigt wird, tritt ein Speicherüberlauf erst ein, wenn die Zahl der Stackeinträge zu einem bestimmten Zeitpunkt mehr Speicher beansprucht als 1 4 des gesamten zur Verfügung stehenden Speichers. Queues Warteschlangen FIFO-Listen First-In-First-Out Idee (siehe GdP-Vorlesung): isempty: false first: 3 enqueue(9) dequeue FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Signatur: Übung Mathematisches Modell: Übung Implementierung mittels einfach verketteter linearer Listen: Übung Implementierung mittels Arrays, zirkulär benutzt: A[0..m 1] m 2 m head: tail: i j head: tail: i j FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
5 empty: Erzeuge Array A[0..m 1] of Keys und 2 Variable head,tail: int ; head 0; tail 0; isempty: if head = tail then return true else return false ; first: if head = tail then Fehler (z.b. QEmptyException) else return A[head] ; dequeue: if head = tail then Fehler (z.b. QEmptyException) else head (head + 1) mod m ; enqueue(x): tt (tail + 1) mod m; if tt = head then Fehler (z.b. OverflowException) else tail tt ; A[tail] x ; FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Alternative zu Overflow-Exception: Erzeugen eines neuen Arrays AA der Größe 2m; Umkopieren der Einträge A[head], A[(head + 1 mod m)],..., A[tail] in AA[0], AA[1],..., AA[m 1]; head 0; tail m 1; Satz Wenn eine Queue mit Arrays und der Verdoppelungsstrategie implementiert wird, sind die Gesamtkosten für N Operationen O(N). Bemerkung: Bei der Verdoppelungsstrategie gilt weiter: Der gesamte Platzbedarf ist O(k), wenn k die maximale je erreichte Länge der Queue ist. Umbenennen von AA in A. Dann: Anhängen von x. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
6 Einfachste Datenstrukturen für (endliche) Mengen Modelliere: Endliche Mengen über U. Intuitive Aufgabe: Speichere S U, S endlich, mit Operationen Initialisierung: S ; Suche: x S?; Hinzufügen: S S {x}; Löschen: S S {x}. 1. Signatur: Datentyp Dynamische Menge Sorten: Keys Sets Boolean Operationen: empty: Sets insert: Sets Keys Sets delete: Sets Keys Sets member: Sets Keys Boolean Statt member findet man auch oft den Namen lookup FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Datentyp Dynamische Menge 2. Mathematisches Modell: Modellierung einer Menge als endliche Menge von Objekten: Sorten: Keys: (nichtleere) Menge U (Parameter) Sets: P < (U) = {S U S endlich} Boolean: {true, false} Datentyp Dynamische Menge Operationen: empty(()) = insert(s, x) := S {x} delete(s, x) := S {x} { true, falls x S member(s, x) := false, falls x / S FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
7 Beachte: Datentyp Dynamische Menge Ganz nebenbei wird das Verhalten des Datentyps bei den Sonderfällen bei insert(s, x) ist x schon in S bei delete(s, x) ist x nicht in S ohne Möglichkeit von Missverständnissen spezifiziert. Implementierungsmöglichkeiten (A) Einfach verkettete Liste oder Array mit Wiederholung : {1,2,5,7,11} darstellbar als list: bzw h 11 7 * * * m * * * * pegel: h FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Operationen: empty: erzeuge leere Liste / leeres Array A[1..m] member(x): durchsuche Liste / Array nach (erstem Auftreten von) x insert(x): füge x vorne in Liste ein bzw. füge x an Pegelposition in Array ein delete(x): suche und entferne alle Vorkommen von x in Liste bzw. Array Wie vermeidet man das Entstehen von Lücken im Array? Wenn A[j] zu entfernen ist: A[j] A[pegel]; pegel--; Operationen mit Zeitbedarf h = gegenwärtige Pegelhöhe/Listenlänge empty: erzeuge leere Liste / leeres Array A[1..m] O(1) member(x): durchsuche Liste / Array nach (erstem Auftreten von) x O(h) insert(x): füge x vorne in Liste ein bzw. füge x an Pegelposition in Array ein O(1) delete(x): suche und entferne alle Vorkommen von x in Liste bzw. Array O(h) Nachteil: Wenn sehr oft schon vorhandene Elemente eingefügt werden, kann der Umfang der Liste viel größer als S werden, mit entsprechenden Auswirkungen auf Platzbedarf und Zeitaufwand. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
8 (B) Einfach verkettete Liste oder Array ohne Wiederholung: Mögliche Darstellung der Menge {1, 2, 3, 5, 7, 8, 11}: list: bzw (B) Einfach verkettete Liste oder Array ohne Wiederholung: Vorteil: Platz für S U ist genau S Array-/Listeneinträge. Nachteil: Bei insert, delete, member jeweils lineare Suche nötig. Rechenaufwand in allen Fällen Θ( S ) h * * * m * * * * pegel: h Variable pegel enthält stets S FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD (C) Einfach verkettete Liste oder Array aufsteigend sortiert nur möglich bei angeordnetem Universum (U,<): Darstellung der Menge {1, 2, 3, 5, 7, 8, 11}: list: bzw Einfach verkettete Liste aufsteigend sortiert: Vorteil: Kann Suche nach x abbrechen, sobald ein Listen-/Arrayeintrag x erreicht wird. Mittlere Anzahl von Vergleichen bei Suche nach einem der Einträge a 1 < < a n : wenn für jedes i gilt: Pr(x = a i ) = 1 n 1 * * * pegel: h Variable pegel enthält stets S h m * * * * ( n) 1 n = n FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
9 Mittlere Anzahl von Vergleichen bei Suche nach einem x / {a 1,...,a n } (1 Vergleich für Entscheidung zwischen <,=,>): wenn gilt: für jedes i ist Pr(a i 1 < x < a i ) = 1 n+1 und Pr(x < a 1 ) = Pr(a n < x) = 1 n+1 : ( n + n) 1 n + 1 < n Dies gilt ebenfalls für die Einfüge- und die Lösch-Operation. Array, aufsteigend sortiert: Nachteil: insert, delete: Verschieben vieler Elemente nötig, um die Ordnung zu erhalten und dabei das Entstehen von Lücken zu vermeiden. Zeitaufwand: Θ( S ) Vorteil: member: Kann binäre Suche benutzen. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Binäre Suche, rekursiv Aufgabe: Suche Objekt x in Teilarray A[a..b] Idee: 0. Falls b < a, ist x nicht im Teilarray 1. Falls a = b, ist x in A[a..b], falls x = A[a], sonst nicht 2. Falls a < b, berechne m = (a+b)/2 (Mitte des Teilarrays) 3 Fälle: x = A[m]: gefunden x < A[m]: Wende Binäre Suche auf A[a..m 1] an x > A[m]: Wende Binäre Suche auf A[m + 1..b] an Suche nach x in A[1..h]: Binäre Suche in A[1..h] Gegeben: Array A[1..M], x: Keys; Prozedur RecBinSearch Eingabe: a,b: int; ( 1 a M + 1, 0 b M ) (1) if b < a then return false; (2) if a = b then return (x = A[a]); (3) m (a+b) div 2 ; (4) if x = A[m] then return true; (5) if x < A[m] then return RecBinSearch(a,m-1); (6) if x > A[m] then return RecBinSearch(m+1,b). FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
10 Gegeben: Array A[1..M], x: Keys; Algorithmus Binäre Suche (rekursiv) Eingabe: Array A[1..M], x: Keys; h, 1 h M, mit A[1] < < A[h]; (1) return RecBinSearch(1, h) Korrektheit von Prozedur RecBinSearch: Proposition Das Teilarray A[a..b] von A[1..M] sei strikt aufsteigend sortiert, und es gelte 1 a M + 1,0 b M. Dann gilt: Der Aufruf RecBinSearch(a,b) liefert das Resultat true, falls x in A[a..b] vorkommt, false, falls nicht. Beweis: ( ) Die Aussage stimmt, falls a > b (Zeile (1)) Für den Fall a b benutzen wir verallgemeinerte Induktion. Behauptung: (I.B.) Wenn b a = i, dann liefert der Aufruf RecBinSearch(a, b) mit 1 a, b M das korrekte Resultat. Basis: i = 0. Dann ist a = b, und die Ausgabe ist korrekt (Zeile (2)). FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Ind.-Vor.: Die (I.B.) gilt für alle Aufrufe RecBinSearch(c, d) mit d c < i. Ind.-Schritt: Sei i > 0. Dann ist a < b. Es wird m = (a + b)/2 berechnet. Beobachte: a m < b. Fall 1: x = A[m]. Ausgabe korrekt (Zeile (4)) Fall 2: x < A[m]. Beobachte: Wenn x in A[a..b] vorkommt, dann nicht in A[m..b], denn A[a..b] ist aufsteigend sortiert. Es genügt also, x im restlichen Teil von A[a..b] zu suchen. Wir folgern: Der rekursive Aufruf RecBinSearch(a, m 1) in Zeile (5) liefert das korrekte Resultat. (Beachte: m 1 0.) Wieso? Falls m 1 < a: ( ). Falls m 1 a, ist (m 1) a < b a = i, also können wir die (I.B.) für (a, m 1) anwenden. Diese sagt: Aufruf RecBinSearch(a,m 1) liefert true, falls x in A[a..m 1] vorkommt, false sonst. Fall 3: x > A[m] Überlege analog zu Fall 2, benutze Induktionsvoraussetzung. Satz Rekursive Binäre Suche auf einem strikt aufsteigend geordneten Array A[1..h] liefert das korrekte Ergebnis. Beweis: Direkt aus der Proposition. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
11 Laufzeit von Prozedur RecBinSearch: T RBS (n) seien die worst-case Kosten für einen Aufruf Rec- BinSearch(a,b) mit n = b a + 1 (maximiert über alle möglichen Arrays A[a..b] und Indexpaare (a,b)) Jeder Aufruf von RecBinSearch verursacht Kosten C für eine Konstante C, wenn man die Kosten der hiervon ausgelösten rekursiven Aufrufe nicht zählt. Gesucht also, für alle n: r(n) = maximale Anzahl der Aufrufe, inklusive des ersten Aufrufs, wenn b a + 1 = n. Klar: Wenn n 1, ist r(n) = 1. Für n 2: Die rekursiven Aufrufe beziehen sich auf Teilarrays der Länge (n 1)/2 (links) oder (n 1)/2 (rechts). Dies liefert folgende Rekursionsformel: r(n) 1 + max{r( (n 1)/2 ),r( (n 1)/2 )}. Behauptung: r(n) 1 + log n, für n 1. Beweis: Verallgemeinerte Induktion. Korrekt für n = 1, weil log 1 = 0. Nun sei n 2. Nach Rekursionsformel: r(n) 1 + max{r( (n 1)/2 ),r( (n 1)/2 )}. Falls n = 2, heißt das r(2) 1 + max{r(0),r(1)} = 2 = 1 + log 2. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Falls n 3, ist (n 1)/2 (n 1)/2 1, also (nach Induktionsvoraussetzung) r(n) 1 + max{1 + log( (n 1)/2 ),1 + log( (n 1)/2 )}. Weil (n 1)/2 n/2, folgt dann r(n) log(n/2) = 1 + log n; das ist die Induktionsbehauptung. Beispiel: Arraygröße erfordert etwa 23 rekursive Aufrufe für eine Suche. Mehrere Mengen: Datentyp DynSets Intuitive Aufgabe: Speichere mehrere Mengen S 1,...,S r U, so dass für jede die Operationen des Datentyps DynSet ausführbar sind und zudem Vereinigung, Durchschnitt, Differenz, Symmetrische Differenz Signatur: Wie DynSet, und zusätzlich: union : Sets Sets Sets intersection : Sets Sets Sets diff : Sets Sets Sets symdiff : Sets Sets Sets FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
12 Mathematisches Modell: Wie DynSet, und zusätzlich: union(s 1,S 2 ) := S 1 S 2 intersection(s 1,S 2 ) := S 1 S 2 diff (S 1,S 2 ) := S 1 S 2 symdiff (S 1,S 2 ) := (S 1 S 2 ) (S 2 S 1 ) Implementierung des Datentyps DynSets: Im Prinzip dieselben Möglichkeiten wie bei DynSet. einfach: ungeordnete Strukturen (Array/Liste) ohne Wiederholung. Implementierungen der vier Operationen: Für jedes Element von S 1 durchsuche Darstellung von S 2. Rechenzeit: Θ(n 1 n 2 ), wo S 1 = n 1, S 2 = n 2. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD clever: aufsteigend sortierte Arrays/Listen. Implementierungen der vier Operationen: Rechenzeit: Θ(n 1 + n 2 ), wo S 1 = n 1, S 2 = n oo oo oo oo oo oo Mischen (wie merge bei Mergesort) FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
13 FG KTuEA, TU Ilmenau AuD
Abstrakter 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
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrAlgorithmen und Datenstrukturen SS09. Foliensatz 7. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik
Foliensatz 7 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 15 Mengenoperationen TU Ilmenau Seite 2 / 15 Mengenoperationen
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.
Mehr8 Elementare Datenstrukturen
Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.
MehrAlgorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrGrundlegende Datentypen
Foliensatz 4 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 50 Grundlegende Datentypen TU Ilmenau Seite 2 / 50 Atomare Datentypen
MehrAbstrakte Datentypen und Datenstrukturen
Abstrakte Datentypen und Datenstrukturen Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP2 SS 2009 21. April 2009 1 Praktikum zu DAP 2 Beginn: Mittwoch
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrWiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute
Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)
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
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
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.
Mehr1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
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 I Grundlagen
Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift
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
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrDatenstrukturen und Algorithmen. Vorlesung 8
Datenstrukturen und Algorithmen Vorlesung 8 Inhaltsverzeichnis Vorige Woche: ADT Stack ADT Queue Heute betrachten wir: ADT Deque ADT Prioritätsschlange Binomial-Heap Schriftliche Prüfung Informationen
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,
MehrÜbung Algorithmen I
Übung Algorithmen I 10.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Listen Skip List Hotlist Amortisierte
MehrÜbungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Feld. Feld als sequentielle Liste
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 204 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Einführung 2 Grundlagen von Algorithmen
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,
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
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 6 (6.5.2016) Abstrakte Datentypen, Einfache Datenstrukturen Algorithmen und Komplexität Abstrakte Datentypen : Beispiele Dictionary: (auch:
MehrAufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.
Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
MehrContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
Mehrmarkiert, 0: unmarkiert.)
4.2 Fibonacci-Heaps Fibonacci-Heaps (F-Heaps) implementieren adressierbare Priority Queues (siehe Anfang von Kap. 4). Wie bei Binomialheaps besteht der Heap aus heapgeordneten Bäumen, jedoch mit gelockerten
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrBeispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
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
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrAlgorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren
Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren Frank Heitmann heitmann@informatik.uni-hamburg.de 4. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de
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
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen
Mehr5. Übungsblatt zu Algorithmen I im SoSe 2016
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
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
MehrWas bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,
Mehr6. Verkettete Strukturen: Listen
6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
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
MehrInformatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008
Informatik I. Kapitel Rainer Schrader Elementare Zentrum für Angewandte Informatik Köln 8. Mai 008 / / bisher haben wir nur Arrays verwendet, Gliederung Einführung abstrakte Datentypen Listen Stacks und
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
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
MehrWie beim letzten Mal - bitte besucht: http://pingo.upb.de/549170 Ihr seid gleich wieder gefragt... Übung Algorithmen I 4.5.16 Lukas Barth lukas.barth@kit.edu (Mit Folien von Julian Arz, Timo Bingmann,
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte
MehrÜbung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung
MehrÜbungsklausur Algorithmen I
Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:
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.
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.
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
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
Gliederung 5. Compiler 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrAlgorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
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 (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
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
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur
MehrGrundlagen der Informatik
Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken
MehrProgrammieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
Mehr1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung
Organisatorisches Algorithmen und Datenstrukturen Kapitel 3: Divide & Conquer Frank Heitmann heitmann@informatik.uni-hamburg.de 1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G-021. 2 Studie zum
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
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
MehrAlgorithmen & Datenstrukturen Midterm Test 2
Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrTutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Sortieren): a) Sortieren Sie das folgende Array durch Anwendung des Selectionsort-Algorithmus.
MehrEinfache Datenstrukturen
Kapitel 2 Einfache Datenstrukturen Bis vor einigen Jahren hat es für das Telefonieren ausgereicht, neben dem Telefon ein Telefonbuch zur Hand zu haben. Das im wesentlichen auftretende Problem, daß man
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dr. Michael Brinkmeier Technische Universität Ilmenau Fakultät Informatik und Automatisierung Fachgebiet Automaten und Formale Sprachen 4.7.2007 Dr. Michael Brinkmeier (TU
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 11. Vorlesung Elementare Datenstrukturen: Stapel + Schlange + Liste Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2-4 Zur Erinnerung Datenstruktur:
MehrDatenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
MehrDatenstrukturen. Herzlich willkommen! Sommersemester Isolde Adler
Datenstrukturen Sommersemester 2010 Isolde Adler Herzlich willkommen! Organisatorisches nach der Vorlesung: Aufgabenblatt 2 Webseite der Verantaltung: http://pholia.tdi.informatik.uni-frankfurt.de/lehre/ss2010/ds/
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 =
MehrADS: Algorithmen und Datenstrukturen
ADS: Algorithmen und Datenstrukturen Teil π Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig Oct
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrBemerkung: Heapsort. Begriffsklärung: (zu Bäumen) Begriffsklärung: (zu Bäumen) (2) Heapsort verfeinert die Idee des Sortierens durch Auswahl:
Heapsort Bemerkung: Heapsort verfeinert die Idee des Sortierens durch Auswahl: Minimum bzw. Maximum wird nicht durch lineare Suche gefunden, sondern mit logarithmischem Aufwand durch Verwendung einer besonderen
MehrAlgorithmen und Datenstrukturen 1 Kapitel 5
Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht
MehrÜbung 4: Die generische Klasse AvlBaum in Java 1
Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (
Mehr