Algorithmen und Datenstrukturen
A13. Sortieren: ¨ Uberblick & Ausblick
Marcel L¨ uthi and Gabriele R¨ oger
Universit¨ at Basel
25. M¨ arz 2021
Algorithmen und Datenstrukturen
25. M¨ arz 2021 — A13. Sortieren: ¨ Uberblick & Ausblick
A13.1 ¨ Uberblick
A13.2 Ausblick
A13.3 Quiz
Sortierverfahren
Sortieren
Vergleichsbasierte Verfahren
Nicht vergleichsbasierte
Verfahren
Uberblick und ¨
Ausblick
A13. Sortieren: ¨Uberblick & Ausblick Uberblick¨
A13.1 ¨ Uberblick
A13. Sortieren: ¨Uberblick & Ausblick Uberblick¨
Vergleichsbasierte Verfahren: ¨ Ubersicht
Algorithmus Laufzeit O(·) Speicherbedarf O(·) stabil best/avg./worst best/avg./worst
Selectionsort n
21 nein
Insertionsort n/n
2/n
21 ja
Mergesort n log n n ja
Quicksort n log n/n log n/n
2log n/log n/n nein
Heapsort n log n 1 nein
Sehr sch¨ one Visualisierung der Verfahren unter
https://www.toptal.com/developers/sorting-algorithms/
A13. Sortieren: ¨Uberblick & Ausblick Uberblick¨
Vergleichsbasierte Verfahren: Bemerkungen
I Insertionsort ist auf kleinen Sequenzen sehr schnell und wird daher zum Beispiel zur Verbesserung von Mergesort und Quicksort f¨ ur kurze Aufrufe eingesetzt.
I Quicksort hat eine sehr kurze (= schnelle) innere Schleife. Mit Randomisierung tritt schlechtester Fall so gut wie nie auf.
I Mergesort ist daf¨ ur stabil. Zudem ist der Mergeschritt auch f¨ ur externes Sortieren relevant
Wird z.B. gerne bei Datenbankanwendungen eingesetzt.
I Heapsort ist in der Praxis etwas langsamer als Mergesort, als in-place-Verfahren aber dennoch interessant
z.B. f¨ ur eingebettete Systeme.
I Gleiche asymptotische Laufzeit bedeutet nicht, dass Verfahren auch gleich lange brauchen (verschiedene Konstanten in O (·)).
Heapsort braucht doppelt so viele Vergleiche wie Mergesort.
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
A13.2 Ausblick
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
Vorsortierte Daten
I Oftmals sind Teilsequenzen der Eingabe bereits vorsortiert.
I Insertionsort profitiert davon direkt.
I Von manchen Verfahren gibt es Varianten, die Vorsortierung ausnutzen
z.B. nat¨ urliches 2-Wege-Mergesort.
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
Viele gleiche Schl¨ ussel
I Tritt in praktischen Anwendungen h¨ aufig auf
z.B. Sortieren von Studierendendaten nach Geschlecht I Von manchen Algorithmen gibt es spezialisierte Varianten I Zum Beispiel 3-Wege-Partitionierung in Quicksort
= P
< P > P
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
Sortieren komplexer Objekte
I Meist will man nicht nur Zahlen, sondern komplexe Objekte sortieren.
I Hier w¨ are es sehr teuer, bei jeder Vertauschung die ganzen Objekte zu kopieren.
I Stattdessen: Sortiere Elemente, die nur aus Schl¨ ussel und
Zeiger/Referenz auf das tats¨ achliche Objekt bestehen.
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
Weniger korrekte Verfahren
vollst¨ andiger Comic unter https://xkcd.com/1185/
(CC BY-NC 2.5)
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
Andere Probleme durch Sortieren l¨ osen
k-kleinstes Element
I zum Beispiel Finden des Medians (k = bn/2c) I Verwende Quicksort, aber mache rekursiven Aufruf
nur f¨ ur den relevanten Bereich (→ Quickselect).
Duplikate
I Wie viele verschiedene Schl¨ ussel gibt es? Welcher Wert ist am h¨ aufigsten? Gibt es doppelte Schl¨ ussel?
I Kann man direkt mit quadratischen Algorithmen beantworten.
I Oder – schlauer – erst sortieren und
dann mit einem Durchlauf l¨ osen.
A13. Sortieren: ¨Uberblick & Ausblick Quiz
A13.3 Quiz
A13. Sortieren: ¨Uberblick & Ausblick Quiz