• Keine Ergebnisse gefunden

A13.1¨Uberblick A13.1¨UberblickA13.2AusblickA13.3Quiz AlgorithmenundDatenstrukturen AlgorithmenundDatenstrukturen Sortierverfahren

N/A
N/A
Protected

Academic year: 2022

Aktie "A13.1¨Uberblick A13.1¨UberblickA13.2AusblickA13.3Quiz AlgorithmenundDatenstrukturen AlgorithmenundDatenstrukturen Sortierverfahren"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

A13. Sortieren: ¨Uberblick & Ausblick Uberblick¨

Vergleichsbasierte Verfahren: ¨ Ubersicht

Algorithmus Laufzeit O(·) Speicherbedarf O(·) stabil best/avg./worst best/avg./worst

Selectionsort n

2

1 nein

Insertionsort n/n

2

/n

2

1 ja

Mergesort n log n n ja

Quicksort n log n/n log n/n

2

log 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

(3)

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

(4)

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

Referenzen

ÄHNLICHE DOKUMENTE

Wir wissen bereits, dass der Merge-Schritt korrekt ist, also ist am Ende der gesamte Bereich zwischen lo und hi sortiert. Mergesort: Ruft sort aux f¨ ur gesamten Bereich auf,

A5.1 Laufzeitanalyse Allgemein A5.2 Beispiel: Selectionsort A5.3 Zusammenfassung.. R¨ oger (Universit¨ at Basel) Algorithmen und

I In der Analyse von Mergesort werden wir eine Logarithmusfunktion verwendet. I Dies ist bei der Analyse von Laufzeiten oft

→ doppelt so grosse Eingabe, etwas mehr als doppelt so lange Laufzeit Was bedeutet das in der PraxisM. I Annahme: c = 1, eine Operation dauert im Schnitt 10

I Beispiel: GTA online hatte viele Jahre eine Ladezeit von mehreren Minuten. I mehrere Minuten zum Parsen von 10

Beispiel: pos0 7→ pos2, pos1 7→ pos1, pos2 7→ pos0 I Da alle m¨ oglichen Eingaben der Gr¨ osse n korrekt gel¨ osst. werden m¨ ussen, muss der Algorithmus

Insertionsort ist auf kleinen Sequenzen sehr schnell und wird daher zum Beispiel zur Verbesserung von Mergesort und Quicksort f¨ ur kurze Aufrufe eingesetzt.. Quicksort hat eine

I Insertionsort betrachtet die Elemente von vorne nach hinten und sortiert sie in den bereits sortierten Bereich am.