Technische Universität München
|
|
- Hansl Melsbach
- vor 6 Jahren
- Abrufe
Transkript
1 Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld A wird als MaxHeap verwaltet A[1] entspricht der Wurzel des MaxHeaps Schritt 1: Umwandeln eines Feldes A in einen MAxHeap Schritt 2: Vertausche A[1] (größtes Element) mit A[n] Schritt 3: Feld A[1.. n-1] wieder zum MaxHeap machen: Idee: Teilbaume mit Wurzel A[2] bzw. A[3] sind bereits MaxHeaps, d.h. man muss nicht wieder alles sortieren Vorgehen: MaxHeapify: A[1] sickert nach unten am Ende: A[1] enthält wieder größten Wert weiter wie Schritt 2: Vertausche A[1] mit A[n-1] etc MaxHeapify Algorithmus: Laufzeit: O(log n) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 1
2 8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) Technische Universität München BUILD-MAX-HEAP (A) 1. heap-größe [A] = länge [A] 2. for i = länge [A] /2 downto 1 3. do MAX-HEAPIFY (A,i) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 2
3 AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 3
4 8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], Korrektheit? n = länge(a) Technische Universität München Schleifeninvariante: Zu Beginn jeder Iteration der for-schleife ist jeder Knoten i + 1, i + 2,, n die Wurzel eines Max-Heaps. Korrektheitsbeweis: Initialisierung: Erste Iteration der for-schleife: i= n/2. Jeder Knoten n/2 +1, n/2 +2,..n ist ein Blatt, d.h. Baum besitzt nur die Wurzel, Max-Heap-Eigenschaft ist erfüllt. BUILD-MAX-HEAP (A) 1. heap-größe [A] = länge [A] 2. for i = länge [A] /2 downto 1 3. do MAX-HEAPIFY (A,i) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 4
5 Korrektheitsbeweis: (Forts.) Weitere Iterationen: Für Kind-Knoten von i gilt: Index des Kind-Knotens > i, Wir gehen davon aus, dass die Schleifeninvariante gilt, dann gilt: Beide Kind-Knoten von i sind Wurzeln von Max-Heaps. Damit ist die Vorbedingung für den Aufruf von Max-Heapify(A, i) erfüllt. Terminierung: i = 0, Schleifeninvariante gilt; damit gilt, dass jeder Knoten 1, 2, 3,..., n eine Wurzel eines Max-Heaps ist. D.h. insbesondere ist der Knoten mit Index 1 die Wurzel eines Max-Heaps und damit ist der ganze Binärbaum ein Max-Heap. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 5
6 Beispiel: Feld mit 10 Elementen und zugehöriger Binärbaum (a) Schleifenvariable i = 5, Zeile 3 vor Aufruf von Max-Heapify(A, i) (b) Nach Beendigung des Aufrufs, i = 4, Aufruf von Max-Heapify(A, i) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 6
7 Beispiel (Forts.): (c) (e) Iterationen der for-schleife in Build-Max-Heap (f) Max-Heap nach Terminierung von Build-Max-Heap. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 7
8 Laufzeit von Build-Max-Heap Jeder Aufruf von Max-Heapify erfordert O(log 2 n) Schritte Es gibt O(n) Max-Heapify-Aufrufe. D.h. T build-max-heap (n) = O(n log 2 n). Das ist eine obere Schranke für die Laufzeit. Diese Schranke ist korrekt, aber nicht sehr scharf. Man kann zeigen, dass die Laufzeit von Max-Heapify(A, i) von der Höhe des Knotens mit Index i abhängt. Da die Höhe der meisten Knoten klein ist (das kann man beweisen), kann man beweisen (siehe Cormen S. 132), dass gilt: T build-max-heap (n) = O(n). D.h. zur Berechnung eines Max-Heaps aus einem unsortiertem Feld benötigt man Lineare Zeit. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 8
9 8.1.4 Put it all together: der Heapsort-Algorithmus Eingabe: Feld A[1..n] n = länge(a) Zeile 1: Nach Terminierung von Build-Max-Heap(A): maximales Element ist in A[1] gespeichert. HEAPSORT (A) 1. BUILD-MAX-HEAP (A) 2. for i = länge [A] downto 2 3. do vertausche A [1] A[i] 4. heap-größe [A] = heap-größe [A] -1 5 MAX-HEAPIFY (A,1) Beispiel: (a) Situation in Zeile 2 AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 9
10 HEAPSORT (A) 1. BUILD-MAX-HEAP (A) 2. for i = länge [A] downto 2 3. do vertausche A [1] A[i] 4. heap-größe [A] = heap-größe [A] -1 5 MAX-HEAPIFY (A,1) Beispiel (Forts.) (b) (j): Max-Heaps nach Zeile 5 Technische Universität München (k) Ergebnis: Sortiertes Feld AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 10
11 Laufzeit von Heapsort Aufruf von Build-Max-Heap: O(n) n 1 Aufrufe von Max-Heapify: O(log 2 n) Gesamtlaufzeit: T heapsort (n) = O(n log 2 n) Man kann sogar zeigen: Heapsort kann ein Feld der Länge n mit höchstens 2n log 2 (n) + 7/2 n Vergleichen sortieren. Analyse der Speicherplatzanforderungen: Heapsort benötigt nur den Speicherplatz für die zu sortierenden Daten. Lediglich 4 zusätzliche Variablen (Speicherplätze) werden benötigt. Heapsort arbeitet in-place (man nennt das auch in-situ). AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 11
12 HeapSort in der Programmiersprache C int heapsort( int * data, int n ) // zu sortierendes Feld und seine Länge { const int WIDTH= 8; // Anzahl der Kinder pro Knoten int val, parent, child, w, max, i; int m= (n + (WIDTH - 2)) / WIDTH; // erstes Blatt im Baum int count= 0; // Zähler für Anzahl der Vergleiche while ( 1 ) { if ( m ) { // Teil 1: Konstruktion des Heaps parent= --m; val= data[parent]; // zu versickernder Wert } else if ( --n ) { // Teil 2: eigentliche Sortierung val= data[n]; // zu versickernder Wert vom Heap-Ende data[n]= data[0]; // Spitze des Heaps hinter den Heap in parent= 0; // den sortierten Bereich verschieben } else // Heap ist leer; Sortierung beendet break; AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 12
13 HeapSort in der Programmiersprache C while ( (child= parent * WIDTH + 1) < n ) // erstes Kind; { // Abbruch am Ende des Heaps w= n - child < WIDTH? n - child : WIDTH; // Anzahl der vorhandenen Geschwister Technische Universität München count += w; for ( max= 0, i= 1; i < w; ++i ) // größtes Kind suchen if ( data[child+i] > data[child+max] ) max= i; child += max; if ( data[child] <= val ) // kein Kind mehr größer als der break; // zu versickernde Wert data[parent]= data[child]; // größtes Kind nach oben rücken parent= child; // in der Ebene darunter weitersuchen } data[parent]= val; // versickerten Wert eintragen } return count; } AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 13
14 8.2 Prioritäts-Warteschlange Motivation: Heap-Konzept zur Organisation von Datenstrukturen Ziel: Sehr effiziente Such-Operationen auf speziell vorsortierten Datenstrukturen: sortiert nach Priorität in einer Warteschlange. Ansatz: Um eine solche Warteschlange effizient aufzubauen und zu verwalten, verwendet man häufig eine Heap-Datenstruktur. Besonderheit: In einer Prio-Warteschlange können Elemente verwaltet werden, deren Werte sich dynamisch ändern (z.b. Prio erhöhen) Definition Eine Prioritäts-Warteschlange ist eine Datenstruktur für die Speicherung einer Menge S von Datenelementen, denen jeweils ein Wert, der Schlüssel, zugeordnet ist. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 14
15 AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 15
16 Operationen auf Prioritätswarteschlangen: Basis ist ein Max_Heap Insert(S, x): Einfügen eines Datenelementes in die Prioritätswarteschlange Maximum(S): gibt das Element von S mit dem größten Schlüssel zurück Extract_Max: entfernt das Element mit dem größten Schlüssel aus S und gibt das Element aus Increase-Key(S, x,k): erhöht den Wert des Schlüssels von Element x auf den neuen Wert k, k x Anwendung für Prioritätswarteschlangen: u.a. Scheduling von Simulationsjobs (event-driven simulation) Programm mit höchster Priorität wird gestartet (CPU-Scheduling) Business Class Check-In am Flughafen AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 16
17 Implementierung der Operationen in Pseudo-Code: (1) Implementierung der Operation Maximum in O(1) HEAP-MAXIMUM(A) return(a[1]) Technische Universität München Beispiel-Baum AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 17
18 Implementierung der Operationen in Pseudo-Code: (Forts.) (2) Implementierung der Operation Extract-Max in O(lgn). HEAP-EXTRACT-MAX (A) sei heap-größe[a] = n 1. if n < 1 2. then error Heap-Unterlauf 3. max = A[1] 4. A[1] = A[n] 5. n = n 1 6. MAX-HEAPIFY (A, 1) 7. return max AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 18
19 Implementierung der Operationen in Pseudo-Code (Forts.) (3) Implementierung der Operation Increase-Key in O(log 2 n) HEAP-INCREASE-KEY (A, i, schlüssel) 1. if schlüssel < A[i] 2. then error neuer Schlüssel ist kleiner als der aktuelle Schlüssel 3. A[i] = schlüssel 4. while i > 1 und A[Vater(i)] < A[i] 5. do vertausche A[i] A[Vater(i)] 6. i = Vater(i) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 19
20 AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren Technische Universität München Implementierung der Operationen in Pseudo-Code (Forts.) (4) Implementierung der Operation Insert in O(log 2 n). MAX-HEAP-INSERT (A, schlüssel) 1. n = n A [n] = 3. HEAP-INCREASE-Key (A, n, schlüssel) Fazit : Unter Nutzung der Datenstruktur Heap ist es möglich, jede Operation auf einer Prioritätenwarteschlange mit n Elementen in einer Laufzeit von O(log 2 n) durchzuführen. Der Heap ist eine sehr effiziente Datenstruktur für eine Vielzahl von Anwendungen.
21 8.3 Vergleichsbasiertes Sortieren Frage: Kann man eine untere Schranke Ω für das vergleichsbasierte Sortieren angeben? Antwort: ja, man kann zeigen, dass vergleichende Sortierverfahren im schlechtesten Fall Ω(n log n) Vergleiche benötigen. Beweisidee: Seien n Eingabewerte in einem Feld A gegeben Vergleichende Sortierverfahren können als Entscheidungsbäume interpretiert werden. Definition: Ein Entscheidungsbaum ist ein vollständiger Binärbaum, der die Vergleiche zwischen den Elementen repräsentiert. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 21
22 Entscheidungsbaum: Sei n die Anzahl der Eingaben, also a 1,, a n jeder innere Knoten wird mit i:j annotiert, mit i, j n i:j steht für den Vergleich a i a j der linke Teilbaum des Knotens beschreibt die Vergleiche, wenn gilt a i a j der rechte Teilbaum des Knotens beschreibt die Vergleiche, wenn gilt a i > a j jedes Blatt des Entscheidungsbaums wird mit einer Permutation der Eingabewerte annotiert, d.h. der Entscheidungsbaum zählt alle Permutationen auf. Für n Eingaben gilt: es gibt n! Permutationen der Eingaben AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 22
23 Beispiel: Entscheidungsbaum für Sortieren mit Einfügen Eingabe: 3-elementiges Feld A= (6, 8, 5) 3! = 6 verschiedene Permutationen der Eingabefolge sind möglich, d.h. Entscheidungsbaum hat mind. 6 Blätter. Sortiertes Feld: A= (5, 6, 8) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 23
24 Zusammenhang: Entscheidungsbaum und Sortieralgorithmus Eine Ausführung des Sortieralgorithmus A entspricht einem Pfad von der Wurzel des Baums bis zu einem erreichbaren Blatt. D.h. durch die Ausführung wird eine sortierte Permutation erzeugt. Notwendige Bedingung für die Korrektheit eines vergleichsbasierten Sortieralgorithmus A ist: der Algorithmus erzeugt alle möglichen n! Permutationen bei n Eingabewerten; der Entscheidungsbaum hat n! Blätter. Jedes Blatt muss über einen Pfad von der Wurzel aus erreichbar sein, der einer Ausführung von A entspricht (erreichbares Blatt). Für ein Blattknoten der Tiefe d sind d Vergleiche zum Sortieren erforderlich. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 24
25 Aus dem vorher Gesagten folgt: Für vergleichsbasierte Sortieralgorithmen gilt im schlechtesten Fall: Die Höhe seines Entscheidungsbaums = Anzahl der Vergleiche D.h. Eine untere Schranke für die Höhen aller Entscheidungsbäume, in denen jede Permutation als erreichbares Blatt auftritt, ist eine untere Schranke für die Laufzeit jedes vergleichenden Sortieralgorithmus. Satz: Für jeden vergleichenden Sortieralgorithmus sind im Worst-Case Ω(n log n) Vergleichsoperationen erforderlich. Der Omega-Operator Ω bezeichnet eine untere Schranke, es gilt: Ω(g(n))= { f(n): es existieren Konstanten c, n 0, so dass 0 cg(n) f(n) für alle n n 0 } AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 25
26 Beweis zu bestimmen ist die Höhe eine Entscheidungsbaums, in dem jede Permutation als Blatt auftritt Sei ein Baum, der einem Sortieralgorithmus für n Elemente entspricht, gegeben, mit der Höhe h und mit r erreichbaren Blättern. jede Permutation entspricht einem Blatt, d.h. es gilt: n! r. Da ein Binärbaum der Höhe h nicht mehr als 2 h Blätter hat, gilt: n! r 2 h d.h. Durch Anwendung von Log gilt : h lg(n!) Zudem gilt: lg(n!) = Θ(n lg n) wg Also gilt: h = Ω(n lg n) Korollar: Merge-Sort und Heap-Sort sind asymptotisch optimale vergleichende Sortierverfahren. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 26
27 8.4 Sortieren in Linearzeit Hier: Beispiel Bucketsort Bucketsort arbeitet nicht vergleichend, so dass die untere Schranke Ω(n log n) nicht gilt. Bucketsort arbeitet in linearer Zeit, wenn die Eingabewerte unabhängig und gleich verteilt über das Intervall [0, 1) vorliegen. Idee Intervall [0, 1) wird in n gleich große Teilintervalle (Buckets) aufgeteilt n Eingabewerte werden auf die Teilintervalle verteilt. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 27
28 Idee (Forts.) Intervall [0, 1) wird in n gleich große Teilintervalle (Buckets) aufgeteilt n Eingabewerte werden auf die Teilintervalle verteilt. Sortieren der Zahlen in jeden Bucket. Auflisten aller Zahlen aller Buckets gibt die sortierte Folge. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 28
29 Eingabe: Feld A der Länge n, 0 A[i] < 1 für jedes Feldelement A[i] Bucketsort benötigt ein Hilfs-Feld B[0.. n 1] von verketteten Listen BUCKET-SORT (A) 1 n = länge [A] 2 for i = 1 to n do 3 füge A[i] in die Liste B[ na [i] ] ein 4 for i = 0 to n 1 do 5 sortiere die Liste B[i] durch Sortieren durch Einfügen 6 Hänge die Listen B[0], B[1],., B[n 1] in dieser Reihenfolge hintereinander Beispiel: Eingabefeld A[1.. 10] B[0.. 9] nach Ausführung von Zeile 5 Bucket i enthält Zahlen aus dem Intervall [i/10, (i+1)/10) AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 29
30 Bucketsort: intuitive Erläuterung Gegeben seien zwei Elemente A[i] und A[j], obda: A[i] A[j]. A[i] und A[j] sind entweder im gleichen Bucket eingeordnet oder A[i] befindet sich in einem Bucket mit kleinerem Index als der von A[j]. Fall1: A[i] und A[j] liegen im gleichen Bucket, dann werden sie durch die Anweisungen in den Zeilen 4-5 sortiert. Fall2: A[i] und A[j] liegen in verschiedenen Buckets, dann werden sie durch die Anweisung in der Zeile 6 sortiert. Laufzeitanalyse von Bucketsort: alle Zeilen, außer Zeile 5, erfordern im Worts-Case O(n)-Schritte Zeile 5: Sortieren durch Einfügen, d.h. Bestimmen der Laufzeit von n Aufrufen von Insertion-Sort. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 30
31 Insertion-Sort erfordert quadratische Laufzeit O(n 2 ). Sei n i die Zufallsvariable, die die Anzahl der Elemente im Bucket B[i] beschreibt. Damit können wir die Laufzeit von Bucketsort beschreiben durch: Bestimmen der Laufzeit im Mittel, gleichverteilte Werte liegen zugrunde. Durch Bilden der Erwartungswerte erhalten wir: AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 31
32 Man kann zeigen, dass gilt: (siehe Cormen) Damit erhält man als erwartete Laufzeit von Bucketsort: Θ(n) + n * O(2 1/n) = Θ(n) D.h. die erwartete Laufzeit von Bucketsort ist linear. Fazit: Bucketsort ist sehr schnell, benötigt aber zusätzlichen Speicher (out-of-place) und der Wertebereich der zu sortierenden Zahlen muss begrenzt sein. Zudem müssen die Werte unabhängig und gleich verteilt sein. AuD, WS10/11, C. Eckert, Kapitel 8 Fortgeschrittene Sortierverfahren 32
33
8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
MehrKapitel 8 Fortgeschrittene Sortieralgorithmen
Kapitel 8 Fortgeschrittene Sortieralgorithmen Zur Erinnerung: in Kapitel 6 Elementare Sortierverfahren Sortierverfahren, die auf Vergleichen von Werten basieren. Aufwand zum Sortieren von Feldern von n
MehrAlgorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
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.
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 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 9. Vorlesung Sortieren in Linearzeit Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,...,
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
MehrKapitel 6 Elementare Sortieralgorithmen
Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine
MehrAlle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
Mehr7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
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
MehrUntere Schranke für allgemeine Sortierverfahren
Untere Schranke für allgemeine Sortierverfahren Prinzipielle Frage: wie schnell kann ein Algorithmus (im worst case) überhaupt sein? Satz: Zum einer Folge von n Keys mit einem allgemeinen Sortierverfahren
MehrKapitel 3 Zur Korrektheit und Effizienz von Algorithmen
Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines Algorithmus
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
Mehr2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
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
MehrSortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2
Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen
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
Mehr3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen
3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge
MehrBucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.
Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:
MehrKomplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
MehrAlgorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik
Foliensatz 15 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 16 Untere Schranken für das Vergleichsbasierte Sortieren TU
MehrTermine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown
Kap. Sortieren..5 HeapSort ff..6 Priority Queues Professor Dr. Vorlesung am Do 7.5. entfällt wegen FVV um Uhr Lehrstuhl für Algorithm Engineering, LS Fakultät für nformatik, TU Dortmund 7. VO DAP SS 009
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
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
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrKapitel 2. Sortieren. Adressenverwaltung (lexikographisch) Treerlisten bei Suchanfragen (Relevanz) Verdeckung (z-koordinate) ...
Kapitel 2 Sortieren Das Sortieren ist eines der grundlegenden Probleme in der Informatik. Es wird geschätzt, dass mehr als ein Viertel aller kommerzieller Rechenzeit auf Sortiervorgänge entfällt. Einige
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für
MehrKapitel 2: Sortier- und Selektionsverfahren Gliederung
Gliederung 1. Laufzeit von Algorithmen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Randomisierte Algorithmen
Mehr7 Sortieren in linearer Zeit
lgorithmen und Datenstrukturen Sortieren in linearer Zeit Wie schnell ist Sortieren möglich? isher: verschiedene lgorithmen, welche n Zahlen in O(n log n) Zeit sortieren. Gemeinsamkeit: Sortierung beruht
MehrTechnische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter
Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam
MehrDefinition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:
HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter
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)
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
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrTutoraufgabe 1 (Sortieralgorithmus):
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 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
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
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
MehrAdnan Kadric Kevin Kandler Seminararbeit Sommersemester 2017
Adnan Kadric 56821 Kevin Kandler 57274 Seminararbeit Sommersemester 2017 1 Contents 1 Einleitung 3 1.1 Sortieren in Linearer Zeit.................... 3 1.1.1 Untere Schranke für das Sortieren...........
MehrAufgabe (Schreibtischtest, Algorithmenanalyse)
Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit
MehrProf. Dr. Margarita Esponda
Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen
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
MehrKapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Mehr7. Übung zu Algorithmen I 1. Juni 2016
7. Übung zu Algorithmen I 1. Juni 2016 Lukas Barth lukas.barth@kit.edu (mit Folien von Lisa Kohl) Roadmap Ganzzahliges Sortieren mit reellen Zahlen Schnellere Priority Queues Bucket Queue Radix Heap Organisatorisches
MehrPro Informatik 2009: Objektorientierte Programmierung Tag 17. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik
Tag 17 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 08.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:
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
MehrInformatik II Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:
MehrPriority Queues and Heapsort
19. ovember 2012 Prioritätswarteschlangen und Priority Queues and Ferd van denhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software ngineering 19. ovember 2012 D/FHTBM Priority Queues and 19.
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
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
Mehr13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang
13 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne
Mehr2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :
2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu
MehrProgrammiertechnik II
2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität
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.
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
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
Mehr4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
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
MehrAlgo-Animation. Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort. Resultat: Partition A=A 1 WA 2 A 1 W A 2.
Algo-Animation Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort 1. Wahl eines Elementes W im Array (heißt Pivot-Element) 2. Suchen eines i von links mit A[i]>W 3. Suchen eines j von
Mehr1. Übungsblatt zu Algorithmen II im WS 2011/2012
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Moritz Kobitzsch, Dennis Schieferdecker. Übungsblatt zu Algorithmen II im WS 0/0 http://algo.iti.kit.edu/algorithmenii.php
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
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 =
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
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung
MehrWiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2013/14 Prof. Dr. Sándor Fekete 1 4.6 AVL-Bäume 2 4.8 Rot-Schwarz-Bäume Rudolf Bayer Idee: Verwende Farben, um den
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
Mehr3. Musterlösung. Problem 1: Heapsort
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 3. Musterlösung Problem : Heapsort ** 2 3 4 5 Algorithmus : Heapsort (A) Eingabe : Array A der Länge n Ausgabe : Aufsteigend
MehrKap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!!
Kap. 3: Sortieren Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund Überblick Einführung in das Sortierproblem Insertion-Sort Selection-Sort Merge-Sort 4. VO
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
MehrSortieren und Suchen. Kapitel II. Sortieren und Suchen
Kapitel II Sortieren und Suchen 43 Inhalt Kapitel II 1 Heapsort Heaps Operationen auf Heaps 2 Prioritätsschlangen 3 Quicksort Randomisiertes Quicksort 4 Vergleichskomplexität 5 Median und Selektion 44
MehrLineare Kongruenzgeneratoren und Quicksort
Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002
MehrKomplexität von Algorithmen OOPM, Ralf Lämmel
Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i
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.
MehrAufgabe 2 Konstruktion von Binärbäumen Tafelübung
Übungen zu Algorithmik I Wintersemester 004/05 Prof. Dr. Herbert Stoyan, Dr.-Ing. Bernd Ludwig Aufgabenblatt 11 (Lösungen) vom 10.01.005 Aufgabe 1 Binärbäume 8 Punkte 1. Alle Antworten können unmittelbar
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (25 Sortieren vorsortierter Daten) 1 Untere Schranke für allgemeine Sortierverfahren Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen
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).
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
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
MehrÜbung Algorithmen I
Übung Algorithmen I 18.5.16 Lukas Barth lukas.barth@kit.edu (Mit Folien von Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Sortieren Kleine Wiederholung Visualisierungen Adaptives
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
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
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
MehrSortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004
Sortieralgorithmen Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Prof. Dr. W. P. Kowalk Universität Oldenburg Algorithmen und Datenstrukturen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 2 Sortieren Version vom: 7. Dezember 2016 1 / 94
MehrMusterlösungen zu Datenstrukturen und Algorithmen SS 2005 Blatt 2, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis 2.
Prof. Dr. Johannes Blömer Paderborn, den. August 005 Musterlösungen zu Datenstrukturen und Algorithmen SS 005 Blatt, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis. Dann erhalten wir 3 n log(n)
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
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
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
MehrDies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.
Linken von Bäumen: Zwei Bäume desselben Wurzel-Rangs werden unter Einhaltung der Heap-Bedingung verbunden. Sind k 1 und k 2 die Wurzeln der zwei zu linkenden Bäume, so wird ein neuer Baum aufgebaut, dessen
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI
MehrAlgorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrÜbungsblatt 4. Aufgabe 1. IN8009 Algorithmen und Datenstrukturen Thomas Stibor
Aufgabe 1 Zeigen Sie 2n 2 = O(n 3 ), n = Ω(lgn), n 2 /2 2n = Θ(n 2 ). Übungsblatt 4 Zu zeigen: 2n 2 = O(n 3 ). O(g(n)) = {f(n) : es existieren positive Konstanten c und n 0, sodass 0 f(n) cg(n) für alle
MehrMergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117
C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117 Mergeable Heaps Erweiterung von Standardheaps, die die folgenden fünf Operationen unterstützen. Make-Heappq liefert neuen, leeren Heap. InsertpH, xq fügt
Mehr