• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen A11. Sortieren: Untere Schranke Marcel L¨uthi and Gabriele R¨oger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen A11. Sortieren: Untere Schranke Marcel L¨uthi and Gabriele R¨oger"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

A11. Sortieren: Untere Schranke

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

18. M¨ arz 2020

(2)

Algorithmen und Datenstrukturen

18. M¨ arz 2020 — A11. Sortieren: Untere Schranke

A11.1 Untere Schranke an erforderliche Vergleichsoperationen

A11.2 Zusammenfassung

(3)

A11.1 Untere Schranke an

erforderliche Vergleichsoperationen

(4)

Inhalt dieser Veranstaltung

A&D

Sortieren Vergleichsbasierte Verfahren

Nicht vergleichsbasierte

Verfahren Uberblick und ¨

Ausblick Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings

(5)

Sortierverfahren

Sortieren

Vergleichsbasierte

Verfahren Selectionsort Insertionsort Mergesort

Minimale Vergleichszahl

Quick Sort Heap Sort Nicht

vergleichsbasierte Verfahren

Uberblick und ¨

Ausblick

(6)

Fragestellung

I Mergesort hatte bisher mit O (n log 2 n) die beste (Worstcase-)Laufzeit.

I Geht es noch besser?

I Wir zeigen: Nicht mit vergleichsbasierten Verfahren!

(7)

Vorgehen

I Schwierigkeit: Wir k¨ onnen nicht einen bestimmten

Algorithmus analysieren, sondern m¨ ussen eine Aussage ¨ uber alle m¨ oglichen Verfahren treffen.

I Vergleichsbasierte Verfahren k¨ onnen die Eingabe nur anhand von Schl¨ usselvergleichen analysieren.

I Sie m¨ ussen jede Eingabe korrekt sortieren.

I Daraus k¨ onnen wir eine untere Schranke an die Anzahl der

Schl¨ usselvergleiche im worst-case ableiten.

(8)

Abstraktes Verhalten als Baum

Betrachte beliebigen vergleichsbasierten Sortieralgorithmus A.

I Verhalten h¨ angt nur vom Ergebnis der Schl¨ usselvergleiche ab.

I Bei jedem Schl¨ usselvergleich gibt es zwei M¨ oglichkeiten, wie der Algorithmus weiter macht.

I Wir k¨ onnen das graphisch als Baum darstellen.

(9)

Crashkurs Bin¨ arb¨ aume

I Bin¨ arbaum: jeder Knoten hat h¨ ochstens zwei Nachfolger I Knoten ohne Nachfolger heissen Bl¨ atter (Bild: eckige Knoten).

I Der Knoten ganz oben ist die Wurzel.

I Die Tiefe eines Blattes entspricht der

Anzahl von Kanten von der Wurzel zu dem Blatt.

Die maximale Tiefe eines Blattes in einem Bin¨ arbaum

mit k Bl¨ attern ist mindestens log k.

(10)

Aufgabe (Slido)

Was ist die maximale Tiefe

eines Blattes in diesem Baum?

(11)

Ergebnis als Permutation

Was muss der Algorithmus k¨ onnen?

I Annahme: alle Elemente unterschiedlich

I Muss alle Eingaben der Gr¨ osse n korrekt sortieren.

I Wir k¨ onnen alle Algorithmen so anpassen, dass sie verfolgen, von welcher Position zu welcher Position die Elemente bewegt werden m¨ ussen.

I Das Ergebnis ist dann nicht das sortierte Array, sondern die entsprechende Permutation.

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 alle n! m¨ oglichen

Permutationen erzeugen k¨ onnen.

(12)

Untere Schranke

I Jedes Blatt in der Baumdarstellung entspricht einer Permutation.

I Bei Eingabegr¨ osse n muss der Baum also mindestens n! Bl¨ atter haben.

I Die maximale Tiefe des entsprechenden Baumes ist demnach ≥ log 2 (n!).

I Es gibt also eine Eingabe der Gr¨ osse n mit

≥ log 2 (n!) Schl¨ usselvergleichen.

(13)

Untere Schranke: Absch¨ atzung

Absch¨ atzung von log 2 (n!) I Es gilt n! ≥ ( n 2 )

n2

4! = 1 · 2 · 3

≥2 · 4

≥2 ≥ 2 2

I log 2 (n!) ≥ log 2 (( n 2 )

n2

) = n 2 log 2 ( n 2 )

log 2 (n!) = n 2 (log 2 n + log 2 1 2 ) = n 2 (log 2 n − log 2 2) log 2 (n!) = n 2 (log 2 n − 1)

Theorem

Jeder vergleichsbasierte Sortieralgorithmus ben¨ otigt Ω(n log n) viele Schl¨ usselvergleiche. Damit liegt auch die Laufzeit in Ω(n log n).

Mergesort ist asymptotisch optimal.

(14)

A11.2 Zusammenfassung

(15)

Zusammenfassung

I Jedes vergleichsbasierte Sortierverfahren hat

mindestens leicht ¨ uberlineare Laufzeit.

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

Fall 1: k < Schl¨ ussel in Knoten Gehe nach links Fall 2: k > Schl¨ ussel in Knoten. Gehe nach rechts Fall 3: k = Schl¨ ussel

Datenstruktur Verkettete Liste von Schl¨ ussel/Werte-Paaren Suchen Elemente durchlaufen bis gefunden oder Listenende Einf¨ ugen Element in Liste.. Wert

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 ∼