• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen A13. Sortieren: ¨Uberblick & Ausblick Marcel L¨uthi and Gabriele R¨oger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen A13. Sortieren: ¨Uberblick & Ausblick Marcel L¨uthi and Gabriele R¨oger"

Copied!
14
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

(2)

Algorithmen und Datenstrukturen

25. M¨ arz 2021 — A13. Sortieren: ¨ Uberblick & Ausblick

A13.1 ¨ Uberblick

A13.2 Ausblick

A13.3 Quiz

(3)

Sortierverfahren

Sortieren

Vergleichsbasierte Verfahren

Nicht vergleichsbasierte

Verfahren

Uberblick und ¨

Ausblick

(4)

A13. Sortieren: ¨Uberblick & Ausblick Uberblick¨

A13.1 ¨ Uberblick

(5)

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/

(6)

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.

(7)

A13. Sortieren: ¨Uberblick & Ausblick Ausblick

A13.2 Ausblick

(8)

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.

(9)

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

(10)

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.

(11)

A13. Sortieren: ¨Uberblick & Ausblick Ausblick

Weniger korrekte Verfahren

vollst¨ andiger Comic unter https://xkcd.com/1185/

(CC BY-NC 2.5)

(12)

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.

(13)

A13. Sortieren: ¨Uberblick & Ausblick Quiz

A13.3 Quiz

(14)

A13. Sortieren: ¨Uberblick & Ausblick Quiz

Quiz

kahoot.it

Referenzen

ÄHNLICHE DOKUMENTE

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

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

Quicksort Heapsort Nicht vergleichsbasierte Verfahren

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

Ein bin¨ arer Baum / Array ist Heap geordnet, wenn der Schl¨ ussel in jedem Knoten gr¨ osser gleich dem Schl¨ ussel seiner beiden Kindern (sofern vorhanden) ist.. Quelle:

Elemente werden in Array gespeichert, wobei Position durch Schl¨ ussel bestimmt ist.. Wichtigstes Werkzeug: Hashfunktion Berechnet Index aus

In einer auf Verkettung basierenden Hashtabelle mit M Listen und N Schl¨ usseln ist die Anzahl der Vergleiche (Gleichheitstests) f¨ ur Einf¨ ugungen und erfolglose Suchen ∼

Bestimmte Grundbausteine ben¨ otigt man immer wieder bei Programmierprojekten, z.B. Sortierverfahren