Algorithmen und Datenstrukturen
A13. Sortieren: ¨ Uberblick & Ausblick
Marcel L¨ uthi and Gabriele R¨ oger
Universit¨ at Basel
25. M¨ arz 2021
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 1 / 14
Algorithmen und Datenstrukturen
25. M¨ arz 2021 — A13. Sortieren: ¨ Uberblick & Ausblick
A13.1 ¨ Uberblick A13.2 Ausblick A13.3 Quiz
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 2 / 14
Sortierverfahren
Sortieren
Vergleichsbasierte Verfahren
Nicht vergleichsbasierte
Verfahren
Uberblick und ¨ Ausblick
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 3 / 14
A13. Sortieren: ¨Uberblick & Ausblick Uberblick¨
A13.1 ¨ Uberblick
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 4 / 14
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/
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 5 / 14
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.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 6 / 14
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
A13.2 Ausblick
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 7 / 14
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.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 8 / 14
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
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 9 / 14
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.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 10 / 14
A13. Sortieren: ¨Uberblick & Ausblick Ausblick
Weniger korrekte Verfahren
vollst¨ andiger Comic unter https://xkcd.com/1185/
(CC BY-NC 2.5)
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 11 / 14
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.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 12 / 14
A13. Sortieren: ¨Uberblick & Ausblick Quiz
A13.3 Quiz
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 13 / 14
A13. Sortieren: ¨Uberblick & Ausblick Quiz
Quiz
kahoot.it
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 25. M¨arz 2021 14 / 14