Abschnitt 19: Sortierverfahren
|
|
|
- Wilhelm Peters
- vor 8 Jahren
- Abrufe
Transkript
1 Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758 Überblick 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 759
2 Motivation Sortieren ist eine wichtige Operation auf Mengen von Objekten. Sortierte Mengen erlauben deutlich effizienteren Zugriff auf einzelne Elemente (z.b. durch binäre Suche). Problemstellung: Gegeben: n Objekte a 1,..., a n mit ihren Schlüsseln k 1,..., k n, anhand derer die Objekte sortiert werden sollen. Gesucht: Eine Anordnung a i1,..., a in mit (i 1,..., i n ) ist eine Permutation von (1,..., n) k i1 k i2... k in (Sortierkriterium). Beispiel: a 1 a 2... a 10 a i1 a i2... a i10 a 5 a 8 a 6 = = = 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 760 Allgemeines Der Typ der Schlüssel k i muss entweder primitv sein, oder das Interface Comparable implementieren. Im folgenden betrachten wir folgende Vereinfachungen: wir verwenden die Schreibweisen k i < k j, k i > k j, usw., bzw. k i = k j unabhängig davon, ob k l einen primitiven Datentyp oder einen Objekttyp besitzt (im letzteren Fall müssten wir eigentlich mit den Methoden compareto bzw. equals arbeiten), wir nehmen an, dass die Datenstruktur zur Verwaltung der Menge ein einfaches Array ist. Allgemeiner Sortieralgorithmus: while (i, j) : (i < j) (k i > k j ) do vertausche a i und a j ; Problem: Algorithmus nicht deterministisch. Daher: speziellere Algorithmen nötig. 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 761
3 Stabilität von Sortierverfahren Definition (Stabilität von Sortierverfahren) Ein Sortierverfahren heisst stabil, wenn die relative Ordnung von Elementen mit gleichen Schlüsselwerten beim Sortieren erhalten bleibt, d.h. wenn für die sortierte Menge k i1,... k in gilt: k ij = k il und j < l i j < i l. Definition (in situ Sortierverfahren) Ein Sortierverfahren heisst in situ, wenn zusätzlich zu dem zu sortierenden Array kein weiterer Speicherplatz benötigt wird. Dabei wird angenommen, dass die zu sortierenden Objekte die Indexpositionen 1,... n belegen und das Feld mit Index 0 für Vertauschungen genutzt werden kann. 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 762 Klassifikation von Sortierverfahren Es gibt verschiedene Kriterien, um Sortieralgorithmen zu klassifizieren, z.b. ihre Stabilität oder ihren Speicherplatzbedarf. Das in dieser Vorlesung wesentliche Kriterium ist das Laufzeitverhalten. Um das Laufzeitverhalten unterschiedlicher Verfahren miteinander zu vergleichen, zählen wir die Anzahl der bei einer Sortierung von n Objekten durchzuführenden Operationen (in Abhängigkeit von n). 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 763
4 Lauzeitverhalten von Sortierverfahren Die beiden wesentlichen Operationen der meisten Sortierverfahren sind: Vergleiche von Schlüsselwerten um Informationen über die vorliegende Ordnung zu erhalten. Im folgenden bezeichnen wir die Anzahl dieser Schlüssel-Vergleiche mit C(n). Zuweisungsoperationen, z.b. Vertauschungoperationen oder Tranpositionen von Objekten (i.a. innerhalb eines Arrays) zur Herstellung der Sortierordnung. Im folgenden bezeichnen wir die Anzahl dieser Zuweisungsoperationen mit M(n). Wir beschränken uns hier auf Algorithmen, die nur Schlüsselvergleiche und Transpositionen verwenden. 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 764 Wie schnell kann man sortieren? Gesucht: eine untere Schranke für die Anzahl C max (n) von Schlüsselvergleichen, die im schlechtesten Fall notwendig sind, um n Objekte zu sortieren. Entscheidungsbaum für 3 Schlüssel k 1, k 2 und k 3 : ja k 1 k 2 k 2 nein k 1 ja k 1 k 2 nein ja k 1 k 2 nein k 3 k 2 k 1 ja nein ja nein k 1 k 2 k 3 k 1 k 2 k 2 k 1 k 2 k 1 In einem Entscheidungsbaum ohne redundante Vergleiche entspricht jedes Blatt einer der n! verschiedenen Permutationen. Da der Entscheidungsbaum ein binärer Baum ist, hat er für n Elemente eine minimale Höhe von log(n!). 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 765
5 Wie schnell kann man sortieren? Damit gilt für einen beliebigen Sortieralgorithmus: C max (n) O(n log n), denn C max (n) log(n!) und n! n (n 1)... ( n/2 ) ( n 2 ) n 2 log 2 (n!) n 2 log 2 (n ) = O(n log n). 2 Resultat: Sortierverfahren haben mindestens eine Laufzeit von O(n log n). 19 Sortierverfahren 1 Allgemeines Informatik 2 (SS 07) 766 Überblick 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren 2 Einfache Sortierverfahren Informatik 2 (SS 07) 767
6 Überblick Einfache Sortierverfahren besitzen meist eine Laufzeit von O(n 2 ). Für wenige Objekte (kleine Werte von n) ist dies meist noch akzeptabel, für große Mengen (z.b. n > 100) allerdings nicht mehr. In den Übungen haben wir bereits eine Reihe einfacher Sortieralgorithmen kennen gelernt, von denen wir einige im folgenden nocheinmal kurz besprechen. Was die Java-Programme anbetrifft, wird hier auf die Übungen verwiesen. 19 Sortierverfahren 2 Einfache Sortierverfahren Informatik 2 (SS 07) 768 Sortieren durch Abzählen: Count Sort Prinzip: Der j-te Schlüssel der sortierten Folge ist größer als j 1 der übrigen Schlüssel. Die Position eines Schlüssels in der sortierten Folge kann damit durch Abzählen der kleineren Schlüssel ermittelt werden. Vorgehen: Für jedes Objekt o im ursprünglichen Array: zähle die Objekte o mit o < o. Laufzeit: C(n) = (n 1) + (n 2) = n (n 1) 2 = O(n 2 ) M(n) = C(n) = O(n 2 ) Das Verfahren ist nicht in situ. Das Verfahren ist stabil (wird instabil falls Test o o). 19 Sortierverfahren 2 Einfache Sortierverfahren Informatik 2 (SS 07) 769
7 Sortieren durch direktes Auswählen: Selection Sort Prinzip/Vorgehen: Suche aus allen n Elementen das kleinste und setze es an die erste Stelle. Wiederhole dieses Verfahren für die verbleibenden Elemente. Nach n 1 Durchläufen ist die Folge sortiert. Laufzeit: C(n) = (n 1) + (n 2) = n (n 1) 2 = O(n 2 ) M (n) = O(n log n) (ohne Beweis) Das Verfahren ist in situ. Je nach Implementierung ist das Verfahren stabil. 19 Sortierverfahren 2 Einfache Sortierverfahren Informatik 2 (SS 07) 770 Sortieren durch direktes Austauschen: Bubble Sort Prinzip: Vertausche die relative Reihenfolge benachbarter Elemente, sodass kleine Elemente nach vorne und größere Elemente nach hinten wandern. Vorgehen: Im ersten Durchlauf werden die Paare (a n 1, a n ), (a n 2, a n 1 ),... bearbeitet. Dadurch wandert das kleinste Element an die erste Position im Array. Nach n 1 Durchläufen ist die Sortierung abgeschlossen. Laufzeit: C(n) = (n 1) + (n 2) = n (n 1) 2 = O(n 2 ) M (n) = O(n 2 ) (ohne Beweis) Das Verfahren ist in situ. Je nach Implementierung ist das Verfahren stabil. 19 Sortierverfahren 2 Einfache Sortierverfahren Informatik 2 (SS 07) 771
8 Überblick 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 772 Das Divide-and-Conquer-Prinzip Analyse: einfache Sortierverfahren reduzieren die Größe des noch zu sortierenden Arrays in jedem Schritt lediglich um eins. Idee: Reduziere das noch zu sortierende Array in jedem Schritt um die Hälfte. Dadurch wird eine Laufzeit von O(n log n) ermöglicht. Das allgemeine Algorithmus-Prinzip von Quicksort heißt Divide-and-Conquer (teile-und-beherrsche). Divide-and-Conquer-Algorithmen zerlegen ein gegebenes Problem solange in kleinere Probleme, bis diese beherrschbar sind. Die globale Lösung ergibt sich durch Verschmelzen der einzelnen (Teil-)Lösungen. 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 773
9 Divide-and-Conquer-Sortieralgorithmen Allgemeines Schema eines Divide-and-Conquer-Sortieralgorithmus: ALGORITHM Divide-and-Conquer-Sort IF Objektmenge klein genug THEN loese das Problem direkt; ELSE DIVIDE: Zerlege die Menge in Teilmengen moeglichst gleicher Groesse; CONQUER: Loese das Problem fuer jede der Teilmengen; MERGE: ENDIF END Berechne aus den Teilloesungen die Gesamtloesung; Wichtige Eigenschaft: Jedes Divide-and-Conquer-Sortierverfahren, dessen Divide- und Merge-Schritt in O(n) Zeit durchgeführt werden können und das eine balancierte Unterteilung des Problems garantiert, besitzt eine Laufzeit von O(n log n). 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 774 Quicksort: Prinzip Ein (prinzipiell beliebiger) Schlüssel x aus dem Array wird ausgewählt (das sog. Pivot-Element). Divide-Schritt: das Array wird in Schlüssel x und Schlüssel < x zerlegt. Conquer-Schritt: die beiden resultierenden Teilarrays werden rekursiv bis auf Elementebene in gleicher Weise behandelt. Merge-Schritt: entfällt, durch entsprechende Speicherung der Teilarrays innerhalb des Arrays. 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 775
10 Quicksort: Algorithmus ALGORITHM QuickSort(ARRAY S) IF S.length = 1 THEN RETURN S; ELSE // DIVIDE: Waehle ein Pivot-Element x aus S; Initialisiere zwei Teilfolgen S1 und S2; FOR EACH y IN S DO IF y < x THEN fuege x zu S1 hinzu; ELSE fuege x zu S2 hinzu; ENDIF ENDFOR // CONQUER: S1 = QuickSort(S1); S2 = QuickSort(S2); // MERGE: RETURN Konkatenation aus S1 und S2 ; ENDIF END Arbeit im Divide-Schritt: O(n). Arbeit im Merge-Schritt: O(1). 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 776 Quicksort: Beispiel Rekursive Unterteilung des Array bzgl. des Pivot-Elements ergibt einen Binärbaum über den Array-Elementen (innere Knoten entsprechen den einzelnen Pivot-Elementen) Beobachtung: Höhe des Baumes entspricht Rekursionstiefe des Verfahrens. Erwünscht: balancierter binärer Baum Rekursionstiefe O(log n). 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 777
11 Quicksort: Laufzeitanalyse (Divide-Schritt) Ausgangspunkt des Divide-Schritt: angenommen das k-te Element der Sortierreihenfolge wird als Pivot gewählt und dann an Position k positioniert. Im Zerlegungsprozess wird jedes Element betrachtet: C(n) = n. Die Anzahl der Vertauschungsoperationen ist abhängig von k: M(n) = (Anz. Elemente < k) (WS für eine Vertauschung) M(n) = (Anz. Elemente < k) (WS, dass Element im rechten Teil) M(n) n (k 1) = (k 1). n 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 778 Quicksort: Laufzeitanalyse (Divide-Schritt) Mittelwert M(n) der Vertauschungen über alle k = 1,..., n für den ersten Zerlegungsschritt: M(n) = 1 n n (k 1) k=1 = 1 n 2 n 1 k=0 n (n 1) = 2 n = O(n). k (n k) n (k 1) n 2 n2 3 n n = n 1/n 6 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 779
12 Quicksort: Laufzeitanalyse (Gesamt/best case) Der günstigste Fall Das Array wird in jeweils zwei Teilarrays etwa gleicher Größe geteilt. Dann folgt für den Gesamtzeitbedarf T(n): T best (n) = c n + 2T( n 2 ) = c n + 2(c n 2 + 2T(n 4 )) = 2cn + 4T( n 4 ) =... = log n c n + n T(1) = O(n log n) 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 780 Quicksort: Laufzeitanalyse (Gesamt/average case) Der durchschnittliche Fall Das Array wird jeweils bezüglich eines zufällig ausgewählten Pivot-Elements zerlegt. Nach Analysen ist dieser Fall nur um den Faktor 2 ln(2) 1, 39 (ca. 40%) schlechter. T (n) = O(n log n). 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 781
13 Quicksort: Laufzeitanalyse (Gesamt/worst case) Der schlechteste Fall Degenerierung zur linearen Liste: stets wird das größte/kleinste Element als Pivot gewählt. T worst (n) = (n 1) + (n 2) = Beachte hierbei auch die hohe Rekursionstiefe n. n (n 1) 2 = O(n 2 ) 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 782 Quicksort: Schlussbemerkungen Austausch von Schlüsseln über große Distanzen Array ist schnell nahezu sortiert. Wie alle komplexen Sortierverfahren ist Quicksort schlecht für kleine n. Es gibt verschiedene Methoden, die Wahrscheinlichkeit des schlechtesten Falls zu vermindern; dennoch bleibt Quicksort immer eine Art Glückspiel, denn es bleibt T worst (n) = O(n 2 ). Quicksort war lange Zeit das im Durchschnittsverhalten beste bekannte Sortierverfahren. Die statischen Methodenjava.util.Arrays.sort implementieren Quicksort. 19 Sortierverfahren 3 Effizientes Sortieren: Quicksort Informatik 2 (SS 07) 783
14 Überblick 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren 4 Zusammenfassung Informatik 2 (SS 07) 784 Zusammenfassung Sie kennen jetzt die untere Grenze der Laufzeit von Sortierverfahren, die Idee und die Laufzeit von einfachen Sortierverfahren, die Idee sowie Vor- und Nachteile des Sortierverfahrens Quicksort. 19 Sortierverfahren 4 Zusammenfassung Informatik 2 (SS 07) 785
15 Ausblick Vertiefung der objektorientierten Programmierung: Programmierpraktikum (3. Semester) diverse Hauptstudiumsvorlesungen Vertiefung Datenstrukturen und Algorithmen: Effiziente Algorithmen (4. Semester) Index- und Speicherstrukturen (Hauptstudium) Spatial-Temporal-Multimedia-Database-Systems (Hauptstudium) 19 Sortierverfahren 4 Zusammenfassung Informatik 2 (SS 07) 786
Algorithmen und Datenstrukturen. Kapitel 3: Sortierverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 3: Sortierverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester
JAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
Algorithmen 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
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
Heapsort / 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
Programmieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung
Kap. 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
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik [email protected] [email protected] Merge-Sort Anwendbar für
Kapitel 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
8. 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
Ü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
Grundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
Aufgabe (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
Ü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
7. 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
Sortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Übung Algorithmen I
Übung Algorithmen I 20.5.15 Christoph Striecks [email protected] (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort
Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing [email protected] www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
Grundlagen der Programmierung 2. Sortierverfahren
Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge
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
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
Tutoraufgabe 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):
4. 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
Kapitel 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
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
Datenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
Alle 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
Suchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
Einführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
Algorithmen 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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
f 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
Übersicht. Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren. 6 Sortieren.
Übersicht 6 Sortieren Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren H. Täubig (TUM) GAD SS 14 221 Statisches Wörterbuch Sortieren Lösungsmöglichkeiten:
Algorithmen 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
Abschnitt: 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
Ü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
Untere 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
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Einfache Sortierverfahren Autor: Stefan Edelkamp
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Einfache Sortierverfahren Autor: Stefan Edelkamp Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1
Sortieralgorithmen. 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
Interne Sortierverfahren
Angewandte Datentechnik Interne Sortierverfahren Interne Sortierverfahren Ausarbeitung einer Maturafrage aus dem Fach A n g e w a n d t e D a t e n t e c h n i k Andreas Hechenblaickner 5CDH HTBLA Kaindorf/Sulm
Sortieralgorithmen. Selection Sort
intuitivster Suchalgorithmus Sortieralgorithmen Selection Sort In jedem Schritt wird das kleinste Element im noch unsortierten Array gesucht und ans Ende des bisher sortierten Teilarrays gehangen 3 1 4
2 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,...,
Quicksort 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.
Vorlesung 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
Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:
Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls
NAME, 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.
Aufgabe 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
Programmierung mit C Algorithmen
Programmierung mit C Algorithmen Informationen /7/ Robert Sedgewick Algorithmen in C. 742 Seiten, ISBN 3-827-37182-1. /8/ Kyle Loudon Algorithmen mit C, ISBN 3-4897-211653-0. Online-Buch "C von A bis Z",
Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009
Kap. 4.7 Skiplisten Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 14./15. VO DAP2 SS 2008 9./16. Juni 2009 1 2. Übungstest Termin: Di 16. Juni 2009 im AudiMax,
Algorithmen 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
Klausur 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
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 [email protected] 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
Build-Max-Heap. Build-Max-HeappAq. Satz Nach Ablauf von Build-Max-Heap ist A ein Heap. Build-Max-Heap hat Laufzeit Opnq.
C. Komusiewicz 3.1 Sortieren und Selektion: Heap-Sort 45 Build-Max-Heap Aufgabe: Baue unsortiertes Array A der Länge n in einen Max-Heap um Idee: Blätter stehen in Artn{2u ` 1..ns und sind bereits zu Beginn
Vorlesung 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
Lineare 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
Grundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.
Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable
Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname
Informatik 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
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg
Wiederholung 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
Grundlagen der Informatik
Jörn Fischer [email protected] Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken
lim 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)
Kapitel 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
Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.
Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur
Humboldt-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
Definition 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
Stud.-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
Kapitel 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:
Kapitel 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:
Algorithmen 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
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1
Einführung in die Informatik I Kapitel II.3: Sortieren
1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
Vorlesung 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
Algorithmen und Datenstrukturen 1-3. Seminar -
Algorithmen und Datenstrukturen 1-3. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline Spezielle Listen: Stacks, Queues Sortierverfahren 3. Übungsserie Wiederholung:
Datenstrukturen 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:...................................................
Ü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
Randomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
Technische 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
Mehrwegbäume Motivation
Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt
2 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
Ü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)
Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012
Algorithmen und Datenstrukturen Tafelübung 14 Jens Wetzl 8. Februar 2012 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:
Asymptotik 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
2.3.1 Einleitung Einfache Sortierverfahren Höhere Sortierverfahren Komplexität von Sortierverfahren Spezielle Sortierverfahren
2.3 Sortieren 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 Höhere Sortierverfahren 2.3.4 Komplexität von Sortierverfahren 2.3.5 Spezielle Sortierverfahren 1 Selection-Sort Idee: Suche kleinstes
Sortieralgorithmen. 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
2. 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]
Grundlagen: 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 2011 Übungsblatt 5 14. Juni 2011 Grundlagen: Algorithmen und Datenstrukturen
