Vortrag: Ingo Gensch, Mathias Reich am:

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmen und Datenstrukturen
DNA-Array oder DNA-Chip
DNA-Array oder DNA-Chip
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Sortieren I - Bubblesort -
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
Kapitel 7. Sortier-Algorithmen
Kapitel 6. Suchverfahren
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
5. Sortier-Algorithmen Vorbemerkungen:
Gliederung Motivation / Grundlagen Sortierverfahren
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Motivation Richard Göbel.
Effizienz: Indexstrukturen
Felder sortieren. Aufgabe: Die Zahlen eines Feldes sollen der Größe (zuerst die kleinste Zahl) nach sortiert werden.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 9 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Sortierverfahren Susanne Freitag.
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
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Vorbereitung: struct SX { int x; struct SX *p; } *px, *ph; px: Zeiger auf Listen- anfang ph: Hilfszeiger px = NULL; px zeigt auf leere Liste px.
Bubbelsort und Quicksort Vortrag von Rolf Heitzenröder
Computer Science Unplugged Sortiernetzwerke © Computer Science Unplugged canterbury.ac.nz von Tim Bell, Ian H. Witten und Mike Fellows Übersetzung:
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…]
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Rekursion mit Listen: Quicksort
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Algorithmen Gruppe 4.
Sortieralgorithmen Sortieren von Arrays.
Sortieren und Suchen IFB 2002 Daniel Jonietz.
Effiziente Algorithmen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Grundlegende Sortieralgorithmen
Kapitel 6: Suchbäume und weitere Sortierverfahren
Kapitel 6: Suchbäume und weitere Sortierverfahren
PHP: Operatoren und Kontrollstrukturen
Sortieren durch Einfügen (Insertionsort). Lothar Färber Gymnasium Am Anger 2 gegeben: unsortierte Zahlenreihe: zahlen[1] bis zahlen[6] [1][2][3][4][5][6]
Programmieren in C Sortieren, Suchen
Sortieralgorithmen Greedy Sortieren: Sortieren durch Auswahl, Einfügen und Austauschen Divide-and-Conquer-Sortieren: Quicksort und merge sort Foliensatz.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Rekursion-
Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse.
M a r c – o l i v e r p a h l Informatik II – Kapitel 12 „Sortier-Algorithmen“ Zusammenfassung des Kapitel 12 Küchlin, Weber, Einführung in die Informatik,
Algorithmen und Datenstrukturen
MS - A CCESS Das Datenbankensystem von Microsoft.
Binärbäume.
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Allgemeine Formulierung des Suchproblems
InsertionSort Einfügen eines Elements an der richtigen Stelle eines bereits sortierten Arrays. Verschiebungen von Elementen statt Vertauschungen Element.
Bubblesort. Inhaltsverzeichnis Allgemeines Aufbau Prinzip Beispiel.
Suchen und Sortieren.
Sortieren interaktiv.
Laufzeitverhalten beim Sortieren
Kniffelergebnisse.
Sortieren interaktiv.
 Präsentation transkript:

Vortrag: Ingo Gensch, Mathias Reich am: 11.12.2000 Sortierverfahren Vortrag: Ingo Gensch, Mathias Reich am: 11.12.2000 DVG1 - 12 - Sortierverfahren

Was sind Sortieralgorithmen Das Sortieren ist ein Verfahren zum Herstellen einer definierten (geordneten) Sequenz von Objekten entsprechend einer Ordnung bzw. der Vorgang des Anordnens von Objekten zu einer definierten Sequenz entsprechend einer Ordnung Zielsetzung: Vereinfachung des Findens von Objekten mit Hilfe einfacher Suchverfahren DVG1 - 12 - Sortierverfahren

Wo braucht man Sortierverfahren? wenn große Datenmengen vorhanden sind und sortiert werden sollen Wenn zu einer bereits bestehenden, sortierten Datenmenge neue Elemente hinzugefügt werden müssen Sortierte Datenbestände sind z.B.: Telefonbuch Register Kataloge usw. DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren Was sortieren wir? Elektronische Daten Zahlen Zeichenketten Adressen Datenbänke usw. DVG1 - 12 - Sortierverfahren

Was sind gute Algorithmen? Oder gibt es einen besten Sortieralgorithmus für alle Datensätze? Die Effektivität der Sortieralgorithmen ist abhängig von der Art der bestehenden Daten vorsortierte Daten? Steht die Menge der zu sortierenden Daten im Verhältnis zum Programmierumfang? Geschwindigkeit der Sortierung der Daten wichtig? DVG1 - 12 - Sortierverfahren

Geschwindigkeit der Sortierung Abhängig vom Sortierverfahren Abhängig von der Anzahl der arithmetischen Funktionen Das theoretisch schnellste Sortierverfahren: Jeder Wert der Datenmenge muss mit jedem anderen Wert der Datenmenge verglichen werden d.h. wenn n die Anzahl der Werte ist, dann hat das effizienteste Sortierprogramm genau n*(n-1) Vergleiche und maximal n Vertauschungen DVG1 - 12 - Sortierverfahren

Computer und Sortieren Sortieralgorithmen haben sich parallel zur Entwicklung der Computer weiterentwickelt Früher: Computer waren zu langsam, Technik noch nicht ausgereift. => Hauptaugenmerk auf neue/bessere Algorithmen Gegenwart: Prozessorentwicklung boomt => Weniger Interesse an guten Algorithmen, da Prozessoren immer schneller werden Zukunft: Maximale (physikal.) Prozessorgeschwindigkeit? => wieder bessere Algorithmen? DVG1 - 12 - Sortierverfahren

Prinzipien des Sortierens Vorsortierte Menge neuer Datensatz Sortierprinzip: Vergleich und sofortiger Austausch (z.B. BubbleSort) ? DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren Sortierprinzip: Vergleich solange bis der neue Datensatz an der richtigen Stelle ist und dann wird erst der neue Datensatz eingefügt (z.B. InsertSort) ? DVG1 - 12 - Sortierverfahren

Arten von Sortieralgorithmen Einfache Sortierverfahren Mittlere Sortierverfahren Höhere Sortierverfahren RandomSort (zufälliges Verändern der Reihenfolge bis es stimmt) InsertSort (Sortieren durch Einfügen) QuickSort (Sortieren durch Zerlegen) PermSort (Sortieren durch Permutation) MergeSort (Sortieren durch Mischen) BubbleSort (Sortieren durch Austauschen) HeapSort (Sortieren im Baum) DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren BubbleSort DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren Bubblesort (Theorie) Es gibt eine unsortierte Datenmenge der Größe n Man vergleicht das erste Feld mit dem Zweiten wenn erstes Feld größer ist als das Zweite, dann Vertauschung der beiden Feldern Man vergleicht die nächsten beiden Felder analog Wenn die letzten beiden Felder verglichen sind, Wiederholung mit der Feldgröße (n-1) Wenn keine Vertauschungen dabei stattgefunden haben, ist die Menge sortiert Anzahl der maximalen Vergleiche und Vertauschungen: (n*(n-1))/2 + (n*(n-1))/2 = n^2-n DVG1 - 12 - Sortierverfahren

Quelltext von BubbleSort for (int i = a.length-1; i>0;i--) { boolean getauscht = false; for (int j = 0; j<i; j++) { if (a[j] > a[j+1]) { int h = a[j]; a[j] = a[j+1]; a[j+1] = h; getauscht = true; } if (!getauscht) return; DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren InsertSort DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren InsertSort (Theorie) Vergleich der ersten beiden Werte kleinerer Wert wird sich gemerkt Der Wert wird mit dem Nächsten verglichen Am Ende der Datenmenge wird der gemerkte (kleinste) Wert an die erste Stelle geschrieben Wiederholung mit der Feldgröße (n-1) Anzahl der Vergleiche und Vertauschungen : (n*(n-1))/2 + n = (n^2+n)/2 DVG1 - 12 - Sortierverfahren

Quelltext von InsertSort int min_index; int anz = a.length-1; int minimum; for(int i=0;i<anz;i++) { min_index = i; for(int j=min_index+1;j<anz; j++); { if (a[j]<a[min_index]) min_index=j; } if min_index>i { minimum=a[min_index]; for (int j=min_index; j>i; j--) a[j]=a[j-1]; a[i]=minimum; DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren QuickSort DVG1 - 12 - Sortierverfahren

DVG1 - 12 - Sortierverfahren Quicksort (Theorie) Prinzip: „Teile und herrsche!“ Aufteilung der Datenmenge in zwei beliebig große Blöcke kleinere Werte auf eine Seite, größere auf die andere Seite vorsortieren Jeden einzelnen Unterblock wiederum unterteilen Wenn Blockgröße auf 1 geschrumpft ist, ist die Menge sortiert Anzahl der Vergleiche und Vertauschungen Abhängig von den Werten : ca. n*log(n) DVG1 - 12 - Sortierverfahren

Struktogramm von QuickSort (rekursive Programmierung) Siehe Blatt DVG1 - 12 - Sortierverfahren