Laufzeitverhalten beim Sortieren

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
DNA-Array oder DNA-Chip
DNA-Array oder DNA-Chip
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Claudio Moraga; Gisbert Dittrich
Das LCA – Problem in Suffixbäumen
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Kapitel 7. Sortier-Algorithmen
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
5. Sortier-Algorithmen Vorbemerkungen:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Baumstrukturen Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (24 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
Informatik II – Kapitel 13
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 12 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Schiller-Gymnasium Hof Manuel Friedrich OStR,
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Vortrag: Ingo Gensch, Mathias Reich am:
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Effiziente Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Mehrkriterielle Optimierung mit Metaheuristiken
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Graphen und Bäume.
Kapitel 6: Suchbäume und weitere Sortierverfahren
Komplexität von Algorithmen
Analyse der Laufzeit von Algorithmen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Einfache Bäume Übung 13 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Das ABC der Statistik DIE HÄUFIGKEITSTABELLEN
Suchen und Sortieren.
Graphen.
Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.
AVL-Bäume.
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Musterlösung zur Klausur "Diskrete Mathematik" vom
Das Problem des Handlungsreisenden
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Suchbäume.
REKURSION + ITERATION.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Laufzeitverhalten beim Sortieren

Aber zuerst brauchen wir noch ein paar Grundlagen:

Grundlage1: Wie viele Möglichkeiten gibt es, Zahlen in einem Feld der Länge n anzuordnen ?

Wir beginnen mit einem Feld der Länge 1. Das Feldelement werde mit Wir beginnen mit einem Feld der Länge 1. Das Feldelement werde mit ? bezeichnet. Wie viele Möglichkeiten gibt es ?

Es gibt genau 1 Möglichkeit: ?

Wie viele Möglichkeiten gibt es, Zahlen in einem Feld der Länge 2 anzuordnen ? Wir gehen wieder vom vorigen Feld mit dem Feldelement ? aus und versuchen ein 2. Element einzubauen.

? An welchen Stellen kann das 2. Element eingefügt werden ? hier ?

? oder: wie viele Möglichkeiten gibt es also insgesamt ? hier 2 ?

Bei 2 Elemente gibt es also 2 Möglichkeiten. Wir gehen jetzt wieder von einem beliebigen Feld der Länge 2 aus und und versuchen ein 3. Element einzubauen.

? ? An welchen Stellen kann das 3. Element eingefügt werden ? hier ?

? ? oder: hier ?

? ? ? oder: wie viele Möglichkeiten gibt es also insgesamt ? hier ? ? oder: wie viele Möglichkeiten gibt es also insgesamt ? hier 3 * 2 ?

Bei 3 Elemente gibt es also 3*2 Möglichkeiten. Wir gehen jetzt wieder von einem beliebigen Feld der Länge 3 aus und und versuchen ein 4. Element einzubauen.

? ? ? An welchen Stellen kann das 3. Element eingefügt werden ? hier ?

? ? ? oder: hier ?

? ? ? oder: hier ?

? ? ? ? oder: wie viele Möglichkeiten gibt es also insgesamt ? hier ? ? ? oder: wie viele Möglichkeiten gibt es also insgesamt ? hier 4 * 3 * 2 ?

Frage: Wie viele Möglichkeiten gibt es dann bei n Elementen ?

Bei n Elementen gibt es also n. = n. (n-1). (n-2). 3. 2 Bei n Elementen gibt es also n!= n*(n-1)*(n-2)*... 3*2*1 Möglichkeiten. Dies wird abgekürzt mit n! und bedeutet n Fakultät.

Grundlage 2: Binärbäume

Ein Baum besteht aus genau einer Wurzel und (mehreren) Knoten Ein Baum besteht aus genau einer Wurzel und (mehreren) Knoten. Hat ein Knoten keinen Nachfolger (Kinder), dann ist es ein Blatt. Ein Binärbäum hat maximal 2 Nachfolger. Die Höhe eines Baums ist die Länge des längsten Pfades.

Da waren viele unbekannte Begriffe. Deshalb schnell ein Beispiel:

K1 Wurzel Die Höhe beträgt 5, weil der Pfad zwischen K1 und K7 aus 5 Knoten besteht. K2 K3 K4 K5 Frage: Aus wie vielen Knoten K6 Blatt K7 Blatt

K1 K2 K3 K4 K5 Aus wie vielen Knoten könnte dieser Baum der Höhe 5 maximal bestehen, d.h. wenn jeder Knoten (au0er den Blättern) 2 Nachfolger hätte? K6 K7

Welche Knoten und Blätter kann man dem Baum noch hinzufügen ?

K1 K2 K3 K4 K5 K6 K7 Aus wie viel Knoten maximal besteht also ein Binärbaum der Höhe h = 5?

K1 K2 K3 K4 K5 K6 K7 Anzahl a = 25 - 1 = 31

K1 K2 K3 K4 K5 K6 K7 Aus wie viel Knoten maximal besteht also ein Binärbaum der Höhe h?

K1 K2 K3 K4 K5 K6 K7 Anzahl a = 2h - 1

Jetzt haben wir die Grundlagen erarbeitet. Jetzt geht es los!

Ein Feld (der Länge n) von Zahlen soll in aufsteigender Reihenfolge durch einen Algorithmus sortiert (geordnet) werden. Beispiel: 23, 17, 45, 13, 33 wird aufsteigend sortiert zu: 13, 17, 23, 33, 45

Voraussetzungen des Algorithmus: Er muß vergleichsbasiert sein. Das bedeutet: Nur vergleiche von jeweils 2 Elementen des Feldes dürfen benutzt werden, um die Ordnung (Sortierung) einer Folge (Feld) zu erhalten.

Andere Voraussetzungen dürfen nicht gemacht werden. Z. B Andere Voraussetzungen dürfen nicht gemacht werden. Z.B. darf nicht vorausgesetzt werden, daß die Folge in einem bestimmten Wertebereich liegt. Beispiel (nicht erlaubte Voraussetzungen): Sortiere 10 ganze Zahlen in aufsteigender Reihenfolge, wobei jede Zahl zwischen 0 und 100 liegt.

Wie viele Vergleiche muß man im worst case (schlimmsten Fall) machen, damit man ein Feld mit 3 Elementen sortiert ? Die 3 Elemente werden mit a1, a2, a3 bezeichnet.

Weitere Vereinbarungen: {a,b},c bedeutet, daß a und b kleiner als c sind und über die Ordnung von a und b untereinander nichts ausgesagt wird (eine Menge ist unsortiert).

i :j < ≥ i : j bedeutet: vergleiche das i-te Feldelement mit dem j-ten Feldelement. Wenn Feldelement i kleiner als Feldelement j, mache links weiter. sonst mache rechts weiter.

1:2 2:3 1:3 2:3 1:3 a1 a2 a3 a2 a1 a3 a1 a2 a3 a1 a3 a2 a3 a1 a2 a2 a3

1:2 2:3 1:3 1:3 2:3 a1 a2 a3 a2 a1 a3 a1 a3 a2 a3 a1 a2 a2 a3 a1 a3 a2 Dieser Entscheidungsbaum stellt eine Folge von Vergleichen eines Algorithmus dar, der eine Folge von 3 Zahlen sortiert. Dieser Baum (Binärbaum, weil jeder Knoten 2 Kinder hat) besteht aus inneren Knoten (blau) und Blättern (rot))

1:2 2:3 1:3 1:3 2:3 a1 a2 a3 a2 a1 a3 a1 a3 a2 a3 a1 a2 a2 a3 a1 a3 a2 Irgend ein anderer Sortieralgorithmus kann genauso durch einen Entscheidungsbaum dargestellt werden. Die Folge der internen Knoten kann dazu natürlich ganz anders sein. Aber die Blätter müssen dann wieder jeweils eine sortierte Folge darstellen. Wie viel Blätter muß es für einen Sortieralgorithmus geben, der eine Folge von 3 Elementen sortiert? Warum ?

1:2 2:3 1:3 1:3 2:3 a1 a2 a3 a2 a1 a3 a1 a3 a2 a3 a1 a2 a2 a3 a1 a3 a2 Es gibt 3! = 6 verschiedene Möglichkeiten eine Folge von 3 Elementen anzuordnen. Also kann die zu sortierende Ausgangsfolge auf 3! verschiedene Arten angeordnet sein. Da jede dieser n! möglichen Ausgangsfolgen identifiziert und sortiert werden muß, muß für jede ein Pfad zu einem Blatt existieren. Also gibt es 3! verschiedene Blätter bzw. allgemein n! Blätter.

Wie viele Vergleiche muß man im worst case (schlimmsten Fall) machen, damit man ein Feld mit n Elementen sortiert ?

Die maximale Anzahl a der Vergleiche ist die Länge des längsten Pfades (=Höhe h) im Entscheidungsbaum (Binärbaum).

a = 2h - 1 < 2h Außerdem gilt: a ≥ n! also: n! ≤ a < 2h und damit n! < 2h also (ld bedeutet Logarithmus zur Basis 2): h > ld(n!)