Beispiel für Analyse von Verfahren und gleichzeitig eine Art, Datenmengen zu verwalten.

Ähnliche Dokumente
Grundlagen: Algorithmen und Datenstrukturen

3. Inkrementelle Algorithmen

11 Divide-and-Conquer und Rekursionsgleichungen

Übersicht. Datenstrukturen und Algorithmen. Rekursionsgleichungen. Übersicht. Vorlesung 6: Mastertheorem (K4) Joost-Pieter Katoen

Algorithmentheorie Randomisierung

1 Randomisierte Bestimmung des Medians

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (02 Funktionenklassen) Prof. Dr. Susanne Albers

3 T (d 1, l 2. ) + (6 + 2) falls d > 0 7 sonst. n 2. 4T ( n 2 ) + log 2 (n), falls n > 1 1, sonst

Vorkurs Mathematik für Informatiker Folgen

Sortieren DNA-Array oder DNA-Chip

Lösungsskizzen Mathematik für Informatiker 5. Aufl. Kapitel 3 Peter Hartmann

Lösung: Datenstrukturen und Algorithmen SS17 Lösung - Klausur

Wörterbuchmethoden und Lempel-Ziv-Codierung

Informatik II Dynamische Programmierung

Mathematische Rekursion. Rekursion. Rekursion in C++ Mathematische Rekursion. Definition. 1, falls n 1. n! = n (n-1)!, falls n > 1

2. Übung Algorithmen II

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Algorithmen und Datenstrukturen 1 VU Übungstest SS April 2012

Teil VII : Zeitkomplexität von Algorithmen

Teil VII : Zeitkomplexität von Algorithmen

Skriptum zur ANALYSIS 1

Musterlösung. Testklausur Vorkurs Informatik, Testklausur Vorkurs Informatik Musterlösung. Seite 1 von 10

Dritter Zirkelbrief: Ungleichungen

Der Groß-O-Kalkül. Additionsregel. Zunächst ein paar einfache "Rechen"-Regeln: " ": Sei. Lemma, Teil 2: Für beliebige Funktionen f und g gilt:

Kapitel 10. Rekursion

Dynamisches Programmieren Stand

Asymptotische Notationen

so spricht man von einer kommutativen Gruppe oder auch abelschen Gruppe.

Vorkurs Mathematik für Informatiker Potenzen und Polynome --

1. Übungsblatt zu Algorithmen II im WS 2016/2017

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Kapitel 11. Rekursion

ELEMENTE DER ZAHLENTHEORIE UND AUFBAU DES ZAHLENSYSTEMS

Denition 27: Die Fakultät ist eine Folge f : N N mit f(1) := 1 und f(n + 1) := (n + 1) f(n) für alle n N. Wir schreiben n! := f(n) für diese Folge.

Nicht-Anwendbarkeit des Master- Theorems

2 Konvergenz von Folgen

Dynamische Programmierung Matrixkettenprodukt

Starke und schwache Einwegfunktionen

Übungen zur Linearen Algebra 1

TECHNISCHE UNIVERSITÄT MÜNCHEN

TECHNISCHE UNIVERSITÄT MÜNCHEN

Analysis I Lösungsvorschläge zum 3. Übungsblatt Abgabe: Bis Donnerstag, den , um 11:30 Uhr

Universität Stuttgart Fachbereich Mathematik. 1 Lineare Abbildungen und Matrizen. 1.1 Um was geht es?

Empirische Verteilungsfunktion

Kombinatorik und Polynommultiplikation

Informatik II Übung 10

Reelle Folgen. Definition. Eine reelle Folge ist eine Abbildung f : N R. liefert ( 7 9, 37

Probeklausur. (b) Was geschieht, wenn man ein Quantenbit in einem solchen Zustand misst?

Kapitel 11. Rekursion

Zusammenfassung: Mathe 1

5 Aufwandsbetrachtungen am Beispiel des Sortierens. 5.2 Entwicklung eines Sortieralgorithmus. 5.3 Untere Schranke fürs Sortieren

Kapitel 5. Ausrichten

Rekursion und Dateioperationen

Vorkurs Mathematik für Informatiker Folgen

mit (a 1 ) (0,0,,0). Dann ist die Menge,,a n,a 2 eine endliche Menge und besitzt ein grösstes Element ggt(a 1

Wir weisen die Gültigkeit der 4Axiome der sigma-algebra für die Potenzmenge einer endlichen Menge A nach!

6 Vergleich mehrerer unverbundener Stichproben

Musterlösung für die Klausur zur Vorlesung Stochastik I im WiSe 2014/2015

Leitfaden Bielefeld SS 2007 III-4

10 Aussagen mit Quantoren und

3 Grenzwerte. 3.1 Grenzwerte von Folgen

KAPITEL 7. Zahlenfolgen. 7.1 Konvergente Zahlenfolgen Grenzwertbestimmung Grenzwertbestimmung durch Abschätzung...

Mathematik III. Vorlesung 81. Eigenschaften des Dachprodukts. Die folgende Aussage beschreibt die universelle Eigenschaft des Dachproduktes.

Lösungen zur Präsenzübung 6

Beispiel 4 (Die Urne zu Fall 4 mit Zurücklegen und ohne Beachten der Reihenfolge ) das Sitzplatzproblem (Kombinationen mit Wiederholung) Reihenfolge

SUCHPROBLEME UND ALPHABETISCHE CODES

Übungen zur Analysis 1 für Informatiker und Statistiker. Lösung zu Blatt 8

3 T (d 1, l 2. ) + (6 + 2) falls d > 0 7 sonst. n 2. 4T ( n 2 ) + log 2 (n), falls n > 1 1, sonst

Lösungen 4 zum Mathematik-Brückenkurs für alle, die sich für Mathematik interessieren

KAPITEL 2. Zahlenfolgen

Übung zur Vorlesung Einführung in die Algebra Prof. Dr. J. H. Bruinier Stephan Ehlen

Positiv denken! Lösungen

Tests statistischer Hypothesen

6. Übungsblatt Aufgaben mit Lösungen + Selbsttest-Auflösung

8. Übungsblatt Aufgaben mit Lösungen

Numerische Lineare Algebra - Theorie-Blatt 2

Zusammenfassung: Folgen und Konvergenz

6 Grenzwerte von Zahlenfolgen

Übung 1 Algorithmen II

1. Man zeige, daß (IR n, d i ), i = 1, 2, metrische Räume sind, wenn für x = (x 1,..., x n ), y = (y 1,..., y n ) IR n die Abstandsfunktionen durch

Aufgaben und Lösungen Ausarbeitung der Übungsstunde zur Vorlesung Analysis I

Zahlenfolgen und Konvergenzkriterien

Anwendungen der Wahrscheinlichkeit II. Markovketten

Kapitel 3: Bedingte Wahrscheinlichkeiten und Unabhängigkeit

Höhere Mathematik I (Analysis) für die Fachrichtung Informatik

1 Aussagenlogik und vollständige Induktion

Analysis 1, Woche 2. Reelle Zahlen. 2.1 Ordnung. Definition 2.1 Man nennt eine Ordnung für K, wenn. 1. für alle a K gilt a a (Reflexivität),

Tutoraufgabe 1 (Rekursionsgleichungen):

Eigenschaften von Texten

Stochastik im SoSe 2018 Übungsblatt 2

4 Konvergenz von Folgen

Basisfall Vergleichsbasiertes Sortieren Programmieraufgabe Algorithm Engineering

ALP I Induktion und Rekursion

Einige wichtige Ungleichungen

10. Testen von Hypothesen Seite 1 von 6

3 Elemente der Komplexitätstheorie Definitionen und ein Beispiel Nichtdeterminismus und das P-NP-Problem... 57

Transkript:

3. Sortiere Beispiel für Aalyse vo Verfahre ud gleichzeitig eie Art, Datemege zu verwalte. Sortiere: eie Folge so permutiere, dass sie aufsteiged geordet ist. 3,7, 7,,3 Motivatio: 5% aller Recherzeit wird für Sortiere verbraucht. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige

3. Sortiere durch Auswahl: Eigabe:,3,6,7,6, Ausgabe: 3,6,6,7,, Jeweils Miimum suche, ausgebe, streiche.) Wie repräsetiere wir Ei- ud Ausgabefolge? Beutze z.b. Felder A ud B: i-tes Ei- ud Ausgabeelemet i A[i] bzw. B[i]..) Was bedeutet es, eie Zahl zu streiche? Beutze weiteres Feld: Rem: array [...] of boolea Rem[i] = true bedeutet, dass A[i] durchgestriche ist. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige

3.) Wie bestimme wir die Positio des Miimums? fuctio Posofmi: iteger; var i, pos : iteger begi i ; while Rem[i] do i i; pos i; for i = to do if (A[i] < A[pos]) ad ot Rem[i] the pos i; Posofmi pos; ed Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 3

We wir icht Zahle sortiere, soder beliebige Elemete eies bestimmte Typs, so ersetze wir (A[i] < A[pos]) durch lesstha (A[i], A[pos]), wobei fuctio lesstha (x,y : typ): boolea geeiget defiiert werde muss. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 4

Sortiere durch Auswahl for i to do Rem[i] := false; for i to do begi j posmi; B[i] A[j]; Rem[j] true ed; Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 5

Elegatere ud platzeffizietere Lösug 8 6 3 7 6 3 6 8 7 6 for i to do 3 6 8 7 6 begi j posmi (i,); 3 6 6 7 8 (* posmi liefert Miimum vo A[i],...,A[] *) 3 6 6 7 8 exchage (A[i], A[j]); 3 6 6 7 8 ed; Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 6

3. Quicksort (Sortiere durch Teile) Wede Teile- ud Beherrsche -Prizip a. Eigabe: Feld S mit Werte x, x,..., x Idee. Teile S-{x } bzgl. x i Mege A,B (Teile) A = x i ud x x, sei A = j B = { i i } { x i ud x > x } i Speichere A i S[]...S[j] x i S[j] B i S[j]...S[] A i x j j B. Wede Verfahre rekursiv auf A ud B a. (Beherrsche) Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 7

Implemetierug: Füge S [] 0 = ud S[ ] = zu S hizu. Dies erspart eiige Tests. Teil : Teile i ; j ; k S[] ; repeat while S[ i] k do i i ; while S [ j] > k do j j- ; if i j fi util i > j ; Vertausche (S[], S[j]) the vertausche (S[i], S[j]) i i ; j j- ; Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 8

Aalyse: Koste = Azahl der Vergleiche zwische S[i] s. Koste im schlechteste Fall: Koste eies Aufrufs Quicksort (l,r) sid a) umittelbare Koste bei Teile-Schritt O(r-l) Vergleiche b) Koste der rekursive Aufrufe Sei QS() = max. Azahl vo Vergleiche, die Quicksort a Feld der Läge durchführt. Es gilt: QS QS ( ) = O( ) ( 0) = QS( ) = 0. max{ QS( j ) QS( j)} j 443 443 rek. Aufruf für A für B Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 9

Behauptug: QS Beweis: durch Iduktio ( ) ( ) ( i = O ) = i= Bemerkug: A Eigabe,, 3,..., führt Quicksort wirklich O( ) Vergleiche durch. Obere Schrake ist also scharf. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 0

Koste im Mittel: Aahme:. Elemete vo S sid paarweise verschiede.. Jede der! mögliche Permutatioe der Eigabe ist gleich wahrscheilich. Damit köe wir o.b.d.a. aehme, dass die Schlüssel die Zahle,,..., sid ud dass S[] = k ist mit Wahrscheilichkeit / für k. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige

Da müsse rekursiv Teilprobleme der Größe k- ud -k gelöst werde. Diese Teilprobleme sid wieder zufällige Folge, d.h. sie erfülle Aahme.) ud.). (Beweis: etfällt, siehe Literatur) ( ) Sei QS die mittlere Azahl der Vergleiche, die Quicksort a eiem Feld der Größe durchführt. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige

QS ud ( 0) = QS() = 0 QS( ) = "Erwartugswert QS( A) QS( B) QS = = k = k = 0 ( ) ( QS( k ) QS( k) ) ( k) ( ) = QS( k) k = 0 QS " Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 3

ud ( ) QS( ) = ( ) QS( k) Da: ( ) QS( ) QS( ) = ( ) QS( ) = QS( ) ( ) QS( ) = ( ) QS( ) k = 0 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 4

Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 5 ( ) ( ) ( ).... QS QS = = = ) ( ) ( K K

Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 6 ( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) O i i i i QS i i i i log l = = = = = = = = d.h. Satz: Die mittlere Laufzeit vo Quicksort ist O( log ).

3.3 Heapsort (Sortiere durch Auswahl) Heap ist Datestruktur, die folgede Operatioe uterstützt: fuctio Emptyheap : heap; liefert Heap mit Wert ø. procedure Isert (x: item, var h: heap); verädert Wert vo h durch Eifüge vo x fuctio Extractmi (var h: heap): item; verädert Wert vo h durch Streiche des Miimums ud liefert gestrichees Elemet. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 7

Heapsort: h Emptyheap; for i = to do Isert (A[i], h); for i = to do B[i] Extractmi (h); Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 8

Zur Realisierug vo Heaps: Ei biärer Baum ist etweder leer oder er besteht aus eiem Kote, der Wurzel geat wird, ud eiem rechte ud like Teilbaum. Bsp.: u v w u ist die Wurzel, v die Wurzel des like Teilbaums vo u,... v = Kid vo u, u = Elterkote vo v, x ist ei Blatt. x Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 9

Sei u ei Kote i eiem Baum T. Tiefe(u) := Höhe(u) := 0, falls u die Wurzel ist Tiefe(Elterkote(u)), sost Bsp.: Tiefe(w) = 0, falls u ei Blatt ist max{höhe(v) v ist Kid vo u}, sost Bsp.: Höhe(w) = Tiefe(T) := max {Tiefe(u) u ist Kote i T} Höhe(T) := max {Höhe(u) u ist Kote i T} = Höhe(Wurzel(T)) Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 0

(Biäre) Heaps lasse sich durch Biärbäume darstelle: Bsp.: {,, 3, 4, 5} darstellbar durch 5 4 3 oder oder... 3 4 5 Jeder Baumkote u ist mit eiem Elemet S[u] beschriftet. Zusätzlich forder wir die Heap-Eigeschaft : Ist u Elterkote vo v, so ist S [ u] S[ v] Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige

Realisierug der Heap-Operatioe: fuctio Emptyheap: klar! fuctio Extractmi: Miimumsbestimmug: Mi. steht a der Wurzel Miimumsetferug: Baum muss reorgaisiert werde Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige

Bsp.: 6 4 Reorg. I 0 6 4 8 0 6 5 3 8 6 5 3 I) Beliebiges Blatt wird etfert ud a die Wurzel gesetzt. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 3

II) daach wird durch sukzessives Vertausche mit dem kleiste Kid die Heap-Eigeschaft wiederhergestellt: Reorg. II 4 6 0 Reorg. II 4 6 6 8 6 5 3 8 0 5 3 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 4

procedure Isert: Eizufügedes Elemet a Kote ahäge, welcher höchstes ei Kid hat. Daach Vertausche mit Elterkote, falls dieser größer ist usw. Bsp.: Eifüge des Elemets 5: 4 6 6 4 4 6 6 6 5 8 0 5 8 5 5 8 6 5 5 3 0 3 0 3 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 5

Ausgewogee Bäume: Es gibt k 0, sodass. Alle Blätter habe Tiefe k oder k ud. Blätter der Tiefe k sitze gaz liks. Bsp.: 4 5 6 3 7 Nummerierug der Kote: Nummeriere Kote der Höhe ach ud ierhalb jeder Höhe vo liks ach rechts. 8 9 0 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 6

Da gilt: () Hat ei Kote Nummer i >, so hat sei Elterkote die Nummer i /. () Hat ei Kote Nummer i, so habe seie Kider (falls existet) die Nummer i ud i. Darstellug ausgewogeer biärer Baum durch Paar (A,), wobei Azahl der Kote ud A Array, sodass A[i] Beschriftug des Kotes mit Nummer i ist für alle i =,...,. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 7

Beispiel: 6 3 4 0 4 5 6 8 7 9 3 8 9 0 4 7 A: 6 4 0 8 7 9 3 4 3 4 5 6 7 8 9 0 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 8

Zur Implemetierug vo Heapsort: type heap = record ed A: array [...N] of item; <*N hireiched groß*> : iteger; fuctio Emptyheap : heap; var h: heap; begi h. 0; <*keie Elemete*> Emptyheap h ed Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 9

procedure Isert (x: item; var h: heap); var i,j: iteger; fiish: boolea; begi h. h. ;<*ei Elemet mehr*> i h. h.a[i] x; <*eues, liksbüdiges El.*> fiish (i = ); while ot fiish do begi j i div <*j Elterkote vo i*> if h.a[i] < h.a[j] the Iterchage (h.a[i], h.a[j]) else fiish true; i j; if fiish = false the fiish (i=); ed ed Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 30

Zur Laufzeit-Aalyse vo Heapsort: Heapsort besteht i.w. aus je Aufrufe vo Isert ud Extractmi. Leicht sieht ma: Ausführugszeit vo Isert ud Extractmi ist O(Höhe des Baumes) Lemma: Hat ei ausgewogeer Baum die Höhe m, so ethält er midestes m ud weiger als m Kote. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 3

Nu gilt: m m Wir erhalte Laufzeit = log ( m) = O( ( log ) ) O( log ). O = Bemerkuge: Obwohl Heapsort im Gegesatz zu Quicksort sogar im Worst Case Laufzeit O( log ) hat, ist Quicksort i der Praxis meist überlege. Für vergleichsbasierte Sortierverfahre läßt sich die utere ( ) Schrake Ω log beweise, Heapsort ist i diesem Sie also asymptotisch optimal. Diese utere Schrake gilt auch im Durchschitt (bei Gleichverteilug). Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 3

3.4 Mergesort (Sortiere durch Mische) Bisher betrachtete Sortierverfahre: Date im Hauptspeicher. Für extere Speichermedie, aber adere Sortierverfahre vorteilhaft, z.b. Sortiere durch Mische: Füge zwei (oder mehrere) sortierte Folge zu eier sortierte Folge zusamme. Z.B. 6 6 5 3 8 5 8 6 6 5 5 3 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 33

Mischalgorithmus: Start mit leerer Ausgabefolge Solage mid. eie Eigabefolge ichtleer, - bestimme x = mi A, wobei A die Mege der erste Elemete der ichtleere Eigabefolge ist, -etfere x aus Eigabefolge, wo es vorkommt ud - füge es as Ede der Ausgabefolge. Korrektheit: x ist icht ur das Miimum über A, soder über der Mege aller verbleibede Eigabeelemete... Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 34

Zum Sortierverfahre: Bezeiche aufsteiged sortierte Teilfolge als Rus. Grudprizip: Teile Eigabe i Teilfolge der Läge (das sid Rus). Mische daach Rus zu lägere Rus. Bsp.: Eigabe: 3,, 4,, 5, 9,, 6, 5, 3, 5 () Streuphase: 3,, 4,, 5, 9,, 6, 5, 3, 5 3, 4, 5,, 5, 5,, 9, 6, 3 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 35

() Mischphase: 3 4 5 5 5 3 5 9 3 5 9 6 3 4 6 5 3 4 3 5 5 5 6 9 3 4 5 6 9 3 5 5 3 3 4 5 5 5 6 9 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 36

Beobachtug: Nach i-tem Durchlauf habe alle Rus i Läge. Allgemeier: p i für p = # Eigabedateie = # Ausgabedateie We p i, so ist die Eigabe sortiert. Also geau log p Durchläufe ötig. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 37

Effiziezverbesserug: Aahme: Hauptspeicher habe Platz für m Elemete (p < m < ). Da köe wir Durchläufe spare, idem wir itere Sortierverfahre dazu beutze, afags Rus der Läge m zu erstelle. Bsp.: m = 3 3 4 5 9 6 5 3 5 3 4 5 9 3 5 5 6 3 4 5 6 5 9 3 5 3 3 4 5 5 5 6 9 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 38

Aalyse: Nach i Durchläufe habe die Rus Läge m i (bzw. m p i ). Also geüge log p Durchläufe. m Bsp.: = 0 7, m = 0 4, p = 3 7 Durchläufe Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 39

3.5 Bucketsort (Sortiere durch Fachverteilug) Betrachte obda Alphabet Σ = {,,..., m} * Für die Wörter x = x... x k ud y = y... y r Σ sage wir, dass x kleier als y (x < y) ist, geau da, we i, 0 i k j, j i: x j = y j ud etweder i = k < r oder i < k ud i < r ud x i < y i. Ziel: Wörter über dem Alphabet Σ bzgl. der gegebee Ordug sortiere. Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 40

Spezialfall : Alle Wörter habe Läge. Lösugsasatz: Stelle m Fächer bereit ud gehe die Zahle durch ud wirf jede Zahl i das ihrem Wert gemäße Fach. Implemetierug der Fächer z.b. als lieare Liste ud ei Feld der Größe m zum Speicher der Listeköpfe. Gesamtzeitaufwad: O( m) Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 4

Spezialfall : Alle Wörter habe gleiche Läge k. Schreibweise: i-tes Wort: x i = x i x i... x i k Vorteilhaft, zuächst ach dem k-te Symbol zu sortiere, da ach dem (k-)-te, usw. Damit k Läufe über die Mege der Wörter. Jeder Lauf gemäß Spezialfall Laufzeit O(( m) k) Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 4

Bsp.: 3, 4, 3, 34, 3 m = 4, = 5, k = 3. Lauf 3 3 3 34 4. Lauf 3. Lauf 4 3 34 4 3 3 3 3 34 3 Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 43

Wie vermeide wir Aufwad mit leere Fächer? Sei s j die Azahl der im j-te Lauf ichtleere Fächer. Ziel: Aufsammel im j-te Lauf i O(s j ) Schritte ud damit Aufwad j-ter Lauf O(s j ). i Erzeuge k Paare (j, x j ), i, j k ud sortiere durch Fachverteilug zuächst ach der zweite ud da ach der erste Kompoete. Nach. Lauf liege im j-te Fach gerade alle Buchstabe i sortierter Reihefolge, die a der j-te Stelle vorkomme. Aufwad. Lauf: O( k m) Aufwad. Lauf: O( k k) Σ : O( k m) Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 44

Allgemeier Fall: Wörter beliebiger Läge x i =: r i, L :=, l max := max i {l i } i= l i Beachte: xi icht zu früh i Fachverteilug miteibeziehe; erst bearbeite, we ach dem l i -te Buchstabe sortiert wird. ( Sortiere Wörter zuächst der Läge ach...) Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 45

Algorithmus: 3 4 Bestimme l i i ud erzeuge Paare (l i, Verweis auf x i ) Sortiere (l i, Verweis auf x i ) durch Fachverteilug ach. Kompoete. Bezeiche Läge[k] die Liste der Elemete der Läge k. Erzeuge L Paare (j, x ji ), i, j r ud i sortiere sie ach der. ud da der. Kompoete.. Fachverteilug liefert lieare Liste Nichtleer[j], j l max. Lösche Duplikate aus Nichtleer[j]. Sortiere u die Wörter x i durch Fachverteilug wie obe beschriebe (uter Berücksichtigug vo Läge[k]). Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 46

Eie eifache Aalyse zeigt: Satz: Sortiere durch Fachverteilug sortiert Wörter der Gesamtläge L über eiem Alphabet der Größe m i Zeit O(m L). Awedug: Sortiere reeller Zahle x,...,x Vereifachug: Betrachte reelle Zahle x i (0,] mit i : Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 47

3.6 Hybridsort α R fest, k : = α Schaffe k leere Körbe. Wirf x i i de Korb k xi für i Wede Heapsort auf jede Korb a ud kokateiere die Körbe, d.h. reihe sie hitereiader auf. Mitteilug:. Worst Case Laufzeit vo Hybridsort ist O( log ).. We x i uabhägig gemäß Eiheitsverteilug aus (0,] gewählt, da hat Hybridsort mittlere Laufzeit O(). Vorlesug Algorithme (RN/MK/AZ) WSI für Iformatik, Uiversität Tübige 48