40
Kapitel 1 Divide-and-Conquer Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1 ,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst: k := n/2. Sortiere a 1 ,..., a k (erste H¨ alfte) rekursiv, Ergebnis b 1 ,..., b k ; sortiere a k +1 ,..., a n (zweite H¨ alfte) rekursiv, Ergebnis b k +1 ,..., b n . Mische“ die Folgen b 1 ,..., b k und b k +1 ,..., b n zu einer sortierten Folge zusammen Reißverschlussverfahren“ – Aufwand: n - 1 Vergleiche. FG KTuEA, TU Ilmenau Effiziente Algorithmen – Sommersemester 2012 42

1.3 Erinnerung: Mergesort - Startseite TU Ilmenau · Kapitel 1 Divide-and-Conquer Mergesort Satz 1.3.1 F¨ur die Vergleichsanzahl im schlechtesten Fall bei Mergesort gilt: C (n) ≤

  • Upload
    halien

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Kapitel 1 Divide-and-Conquer Mergesort

1.3 Erinnerung: Mergesort

Um n Zahlen/Objekte a1, . . . , an zu sortieren, geht derMergesort-Algorithmus so vor:

Falls n ! n0:Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort).

Sonst: k := "n/2#.Sortiere a1, . . . , ak (erste Halfte) rekursiv, Ergebnis b1, . . . , bk ;

sortiere ak+1, . . . , an (zweite Halfte) rekursiv, Ergebnis bk+1, . . . , bn.

”Mische“ die Folgen b1, . . . , bk und bk+1, . . . , bn zu einer sortierten Folgezusammen

”Reißverschlussverfahren“ – Aufwand: ! n $ 1 Vergleiche.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 42

Kapitel 1 Divide-and-Conquer Mergesort

Analyse uber”Rekurrenzungleichungen“:

Wir zahlen nur Vergleiche.

C (n) = Anzahl der Vergleiche beim Sortieren von n Eingaben,schlechtester Fall.

C (1) = 0, C (2) = 1, C (3) = 3.

C (n) = C ("n/2#) + C (%n/2&) + n $ 1.

Behauptung: C (n) = n%log n& $ (2!log n" $ 1).

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 . . .C (n) 0 1 3 5 8 11 14 17 21 25 29 33 37 41 . . .

Beweis: Tafel.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 43

Kapitel 1 Divide-and-Conquer Mergesort

Satz 1.3.1Fur die Vergleichsanzahl im schlechtesten Fall bei Mergesort gilt:

C (n) ! n log n.

Beweis: Tafel.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 44

Kapitel 1 Divide-and-Conquer Master-Theorem

1.4 Das Master-Theorem

Wir betrachten Rekurrenzungleichungen der folgenden Form:

B(n) !!

g , falls n = 1a · B(n/b) + f (n) , sonst.

Dabei: a ' 1 eine ganze Zahl, b > 1 ist eine Konstante, f (n) ist einemonoton wachsende Funktion.

Falls n/b keine ganze Zahl ist, sollte man sich an Stelle von B(n/b) z. B.B(%n/b&) denken.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 45

Kapitel 1 Divide-and-Conquer Master-Theorem

Ergibt sich bei Divide-and-Conquer-Algorithmus mit:

Trivialer Basisfall (Große 1) hat hochstens Kosten g ,

aus Instanz der Große n > 1 werden (”divide“) a Teilinstanzen der Große

n/b (passend gerundet) gebildet,

es erfolgen a rekursive Aufrufe,

und die a Losungen werden kombiniert.

Kosten fur das Aufspalten und das Kombinieren: f (n).

O.B.d.A.: B(n) monoton wachsend. – Sonst definiere:

B(n) = max{B(i) | 1 ! i ! n}.

B(n) ist monoton und erfullt die Rekurrenzungleichung.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 46

Kapitel 1 Divide-and-Conquer Master-Theorem

Vereinfachende Annahmen (nicht wesentlich):

n = b!.

b > 1 ist ganzzahlig.

Level 0: Wurzel, hat Eintrag f (n) und hat a Kinder auf Level 1.

Knoten v auf Level i < ! hat Eintrag f (n/bi ) und hat a Kinder auf Leveli + 1.

Knoten auf Level ! sind Blatter, sie haben Eintrag g .

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 47

Kapitel 1 Divide-and-Conquer Master-Theorem

f (n)

f (n/b) f (n/b)

f (n/b2) f (n/b2) f (n/b2) f (n/b2)

g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g

!

f (n)

a · f (n/b)

a2 · f (n/b2)

a! · g

a

a

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 48

Kapitel 1 Divide-and-Conquer Master-Theorem

Lemma 1.4.1Wenn v ein Knoten auf Level i ist, dann gilt:B(n/bi ) ! Summe der Eintrage im Unterbaum unter v .

(Beweis durch Induktion uber !$ i .)

Also: B(n) ! Summe aller Eintrage im Baum.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 49

Kapitel 1 Divide-and-Conquer Master-Theorem

Auf Level i gibt es ai Knoten mit Eintrag f (n/bi ).

Summation liefert:

B(n) !"

0#i<!

ai · f (n/bi ) + a! · g .

Erster Term B1: Beitrag zu Gesamtkosten aus dem Inneren des Baums.

Zweiter Term B2: Beitrag von den Blattern.(Algorithmisch: Die a! Basisfalle.) – Leicht:

B2(n) = a! · g = (blogb a)! · g = (b!)logb a · g = nlogb a · g .

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 50

Kapitel 1 Divide-and-Conquer Master-Theorem

Erster Term: B1(n) =#

0#i<! ai · f (n/bi ).

3 Falle, je nach Verhalten des Gesamtaufwandes ai · f (n/bi ) auf Level i ,fur i = 0, . . . , !$ 1.

Intuitiv:

1. Fall: ai · f (n/bi ) wachst mit i an.

2. Fall: ai · f (n/bi ) bleibt in etwa gleich uber alle i .

3. Fall: ai · f (n/bi ) schrumpft mit i .

Genaueres folgt.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 51

Kapitel 1 Divide-and-Conquer Master-Theorem

1. Fall: f (n) = O(n") mit b" < a.

Die Beitrage aus den unteren Baumebenen (kleine Instanzen) dominieren,nicht wegen ihrer Große, sondern wegen ihrer Anzahl.

f (n)

f (n/b) f (n/b) f (n/b)

f (n/b2) f (n/b2) f (n/b2) f (n/b2) f (n/b2) f (n/b2) f (n/b2) f (n/b2) f (n/b2)

g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 52

Kapitel 1 Divide-and-Conquer Master-Theorem

Wir benutzen immer die Summenformel fur geometrische Reihen:

(()"

0#i<!

qi =q! $ 1

q $ 1, fur q ' 0, q )= 1.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 53

Kapitel 1 Divide-and-Conquer Master-Theorem

B1(n) ="

0#i<!

ai · f (n/bi )

= O$ "

0#i<!

ai ·% n

bi

&"'

= O$n" ·

"

0#i<!

% a

b"

&i'

= O

(n" · (a/b")!

(a/b")$ 1

)

= O

(n" · a! · 1

(b!)"

)

= O(a!).

Also: B(n) ! B1(n) + B2(n) = O(a!) = O(nlogb a).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 54

Kapitel 1 Divide-and-Conquer Master-Theorem

1. Fall: f (n) = O(n") mit b" < a.

Typische Beispiele:

Karatsuba-Algorithmus, Strassen-Algorithmus.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 55

Kapitel 1 Divide-and-Conquer Master-Theorem

2. Fall: f (n) = O(nlogb a).

f (n/bi ) wachst mit n/bi , i = !$ 1, . . . , 0, hochstens mit einer Rate, diedurch das Schrumpfen der Große der Baumebene ausgeglichen wird.

Der Gesamtaufwand ist beschrankt durch den Aufwand fur die Ebenedirekt uber den Blattern, multipliziert mit der Anzahl der Levels.

f (n)

f (n/b) f (n/b)

f (n/b2) f (n/b2) f (n/b2) f (n/b2)

g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 56

Kapitel 1 Divide-and-Conquer Master-Theorem

B1(n) ="

0#i<!

ai · f (n/bi )

= O

*

+"

0#i<!

ai ·% n

bi

&logb a

,

-

= O

*

+"

0#i<!

ai · nlogb a

ai

,

-

= O%! · nlogb a

&.

Also:B(n) ! B1(n) + B2(n) = O(! · nlogb a) + O(nlogb a) = O((log n) · nlogb a).Typische Beispiele: Mergesort, Binare Suche.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 57

Kapitel 1 Divide-and-Conquer Master-Theorem

3. Fall: f (n) = !(n"), mit b" > a

UND

(Regularitatsbedingung:f wachst stets mit der entsprechenden Rate)Es gibt ein c < 1 mit: f (n) ' (a/c) · f (n/b).Wenn man die Große des Inputs von n/b auf n erhoht, wachsen die Kostenim Knoten von f (n/b) auf f (n), mindestens um den Faktor a/c > a.

f (n) wachst sehr rasch mit n, so dass der Beitrag der oberen Baumebenenund insbesondere der Wurzel uberwiegt.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 58

Kapitel 1 Divide-and-Conquer Master-Theorem

f (n)

f (n/b) f (n/b)

f (n/b2) f (n/b2) f (n/b2) f (n/b2)

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 59

Kapitel 1 Divide-and-Conquer Master-Theorem

Aus der Regularitatsbedingung gewinnen wir:

f (n/b) ! c

a· f (n)

f (n/b2) !%ca

&2· f (n)

...

f (n/bi ) !%ca

&i· f (n) , also:

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 60

Kapitel 1 Divide-and-Conquer Master-Theorem

B1(n) ="

0#i<!

ai · f (n/bi )

!"

0#i<!

ai ·%ca

&i· f (n)

="

0#i<!

c i · f (n)

= f (n) ·"

0#i<!

c i

= O(f (n)),

weil#

0#i<! ci = 1$c!

1$c = O(1).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 61

Kapitel 1 Divide-and-Conquer Master-Theorem

Satz 1.4.2 (Das Master-Theorem)

Es gelte B(n) !!

g , falls n = 1a · B(n/b) + f (n) , sonst,

wobei b > 1 und a ganzzahlige Konstante sind.Dann gilt fur n = b!:

1 Falls f (n) = O(n") mit " < logb a, dann istB(n) = O(nlogb a).

2 Falls f (n) = O(nlogb a), dann ist B(n) = O(nlogb a · log n).3 Falls f (n) = !(n") mit " > logb a und f (n) ' a

c · f (n/b), fur c < 1konstant, dann ist B(n) = O(f (n)).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 62

Kapitel 1 Divide-and-Conquer Master-Theorem

Erweiterungen: Dieselben Formeln gelten fur:

Beliebige n, nicht nur n = b!.

Verallgemeinerte RelationB(n) ! a · B(n%) + f (n), n% ! %n/b&+ d .

b > 1 nicht ganzzahlig.

Analoge untere Schranken.

Genaueres im Buch von Cormen, Leiserson, Rivest und Stein.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 63

Kapitel 1 Divide-and-Conquer Quicksort

1.5 Quicksort (Hoare1) – Neue Analyse

Input: Folge/Array (a1, . . . , an). – Falls n = 1, Ausgabe (a1).

Falls n = 2, sortiere mit einem Vergleich. – Sonst:

Wahle Element x * {a1, . . . , an} als”Pivotelement“ oder

”partitionierendes Element“.(Z.B.: x = a1 oder x = ai mit i zufallig.)

Zerlege (a1, . . . , an) in eine Teilfolge b1, . . . , bp$1, alle ! x , in das Elementx , und eine Teilfolge cp+1, . . . , cn, alle ' x .

Sortiere diese beiden Folgen rekursiv,Ergebnis (d1, . . . , dp$1) und (ep+1, . . . , en).

Ausgabe: Folge/Array (d1, . . . , dp$1, x , ep+1, . . . , en).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 64

Kapitel 1 Divide-and-Conquer Quicksort

1 C.A. R. Hoare (&1934), brit. Informatiker,erfand Quicksort & Korrektheitskalkul.

”I conclude that there are two ways of constructing a software design: Oneway is to make it so simple that there are obviously no deficiencies and theother way is to make it so complicated that there are no obviousdeficiencies. The first method is far more di"cult.“

(Dankesrede fur den Turingpreis 1980)

”I think Quicksort is the only really interesting algorithm that I’ve everdeveloped.“

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 65

Kapitel 1 Divide-and-Conquer Quicksort

Analyse: Wir nehmen an, alle Schlussel sind verschieden. Wir wahlenimmer das erste Element als Pivotelement – betrachten alsodeterministisches Quicksort.

Weiter nehmen wir an, jede der n! Anordnungen sind gleich wahrscheinlich(Wahrscheinlichkeit 1/n!),

und berechnen die erwartete Anzahl A(n) von Vergleichen.

Falls n ! 1: kein Vergleich. Falls n = 2: 1 Vergleich. – Sonst:

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 66

Kapitel 1 Divide-and-Conquer Quicksort

Es seien b1 < · · · < bn die Eingabe-Elemente in sortierter Reihenfolge.

Es ist klar, dass bi und bj maximal einmal miteinander verglichen werden.

(Wenn bi und bj verglichen werden, ist eines der beiden Pivotelement undwird nie mehr mit etwas anderem verglichen.)

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 67

Kapitel 1 Divide-and-Conquer Quicksort

C := Gesamtanzahl der Vergleiche.

(Zufallsvariable, abhangig von der zufalligen Anordnung am Anfang.)

SeiC =

"

1#i<j#n

Xij ,

wobei

Xij =

!1 , falls bi und bj verglichen werden0 , sonst.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 68

Kapitel 1 Divide-and-Conquer Quicksort

Daraus:E(C ) =

"

1#i<j#n

E(Xij) ="

1#i<j#n

Pr(Xij = 1).

(Das folgt aus der Linearitat des Erwartungswertes, normalerweisegeschrieben als E(X + Y ) = E(X ) +E(Y ).)

Was ist Pr(Xij = 1) = Pr(bi und bj werden verglichen)?

Wir beobachten den Algorithmus.

Klar: Im Zuge der Rekursion werden durch Aufspalten immer kleinereTeillisten gebildet.

Solange kein Element von Iij = {bi , bi+1, . . . , bj} Pivotelement wird,landen alle Elemente von Iij immer in derselben Teilliste (alle großer alsPivot oder alle kleiner als Pivot).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 69

Kapitel 1 Divide-and-Conquer Quicksort

In dem Moment, in dem zum ersten Mal ein Element von Iijpartitionierendes Element wird, fallt die Entscheidung:Wenn dies bi oder bj ist, werden bi und bj verglichen.Wenn dies ein Element von {bi+1, . . . , bj$1} ist, nicht(jetzt nicht, aber auch nicht spater, da sie in verschiedenen Teillistenlanden).

Weil alle Elemente in Iij die gleiche Wahrscheinlichkeit haben, zuerst alsPivotelement gewahlt zu werden, gilt

Pr(bi und bj werden verglichen) =2

|Iij |=

2

j $ i + 1.

Also:

E(C ) ="

1#i<j#n

2

j $ i + 1.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 70

Kapitel 1 Divide-and-Conquer Quicksort

"

1#i<j#n

2

j $ i + 1=

"

1#i#n

"

i<j#n

2

j $ i + 1

= 2 ·"

1#i#n

"

2#k#n$i+1

1

k

! 2 ·"

1#i#n

"

2#k#n

1

k

= 2 · n · (Hn $ 1)

! 2 · n · ln n= (2 ln 2) · n · log n< 1,3863n log n.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 71

Kapitel 1 Divide-and-Conquer Quicksort

Dabei ist Hn = 1 + 12 + · · ·+ 1

n * [ln n + 12 , ln n + 1]

(n-te harmonische Zahl).

Satz 1.5.1Die durchschnittliche Anzahl von Vergleichen von Quicksort auf einerEingabe aus n verschiedenen Zahlen, die zufallig angeordnet ist, isthochstens

2 · n · (Hn $ 1) < 1,3863n log n.

Fur die, die es genau wissen wollen:

E(C ) = 2(n + 1)Hn $ 4n = (2 log2 e)n log n $#(n).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 72

Kapitel 1 Divide-and-Conquer Quicksort

Variation:”Randomisiertes Quicksort“.

Das Pivotelement wird jeweils zufallig gewahlt.

In diesem Fall ist die gleiche Analyse anwendbar.

Aber: Es gibt keine worst-case-Inputs mehr.

Satz 1.5.2Wenn man das Pivot-Element stets zufallig wahlt, ist auf einer beliebigen,festen Eingabe aus n verschiedenen Zahlen die erwartete Anzahl vonVergleichen, die Quicksort ausfuhrt, hochstens

2 · n · (Hn $ 1) < 1,3863n log n.

(Siehe hierzu:”Randomisierte Algorithmen“.)

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 73

Kapitel 1 Divide-and-Conquer Selektionsproblem

1.6 Das SelektionsproblemGegeben ist eine Folge (a1, . . . , an) von n Objekten aus einer totalenOrdnung (D, <) (in Array oder als Liste),sowie eine Zahl k , 1 ! k ! n.

O.B.d.A.: Alle Eintrage verschieden.

Aufgabe

Finde das Element der Folge, das Rang k hat, d. h. ein Objekt x in derListe mit |{i | ai ! x}| = k .

Spezialfall: Der Median einer Folge mit n Eintragen ist das Element mitRang %n/2&. Median({2, 4, 7, 9}) = 4, Median({4, 7, 9}) = 7.

Einfache Losung: Sortiere, mit Ergebnis (b1, . . . , bn), nun wahle x = bk . –Kosten: n log n Vergleiche, Zeit O(n log n).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 74

Kapitel 1 Divide-and-Conquer Selektionsproblem

Zunachst:Ein randomisierter Algorithmus fur das Auswahlproblem.

Quickselect (Hoare)

Ansatz: Wie bei Quicksort.

Gegeben: Folge (a1, . . . , an), Zahl k , 1 ! k ! n.

O.B.d.A.: Die ai sind verschieden.

Falls n = 1, ist nichts zu tun.

Falls n = 2, sortiere mit einem Vergleich, Ergebnis (b1, b2), gib Element bkzuruck.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 75

Kapitel 1 Divide-and-Conquer Selektionsproblem

Falls n ' 3:

Wahle ein Element x aus {a1, . . . , an} als partitionierendes Elementzufallig.

Zerlege (a1, . . . , an) mit n $ 1 Vergleichen in eine Teilfolge b1, . . . , bp$1,alle < x , in das Element x , und eine Teilfolge cp+1, . . . , cn, alle > x .

1. Fall: k = p. Das Ergebnis ist x .

2. Fall: k < p. Finde (rekursiv) in (b1, . . . , bp$1) das Element vom Rangk .

3. Fall: k > p. Finde (rekursiv) in (cp+1, . . . , cn) das Element vom Rangk $ p.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 76

Kapitel 1 Divide-and-Conquer Selektionsproblem

Korrektheit: Klar.

Zu analysieren: (Erwartete) Rechenzeit.

Wir analysieren die erwartete Anzahl von Vergleichen.

Vorgehen: Wie bei Quicksort. Wieder ist die erwartete Anzahl vonVergleichen entscheidend.

Eingabezahlen, sortiert: b1 < · · · < bn.

Ck ="

1#i<j#n

Xij ,

wobei

Xij =

!1 , falls bi und bj verglichen werden0 , sonst.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 77

Kapitel 1 Divide-and-Conquer Selektionsproblem

Was ist E(Xij) = Pr(Xij = 1) = Pr(bi und bj werden verglichen)?

1. Fall: k ! i < j : Es kommt darauf an, ob bi oder bj vor allen anderenEintragen in {bk , . . . , bj} Pivot werden.

Pr(Xij = 1) = 2j$k+1 .

2. Fall: i < k < j : Es kommt darauf an, ob bi oder bj vor allen anderenEintragen in {bi , . . . , bj} Pivot werden.

Pr(Xij = 1) = 2j$i+1 .

3. Fall: i < j ! k : Es kommt darauf an, ob bi oder bj vor allen anderenEintragen in {bi , . . . , bk} Pivot werden.

Pr(Xij = 1) = 2k$i+1 .

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 78

Kapitel 1 Divide-and-Conquer Selektionsproblem

Also:

E(Ck) = 2 ·.

#k#i<j#n

1j$k+1 +

#1#i<k<j#n

1j$i+1 +

#1#i<j#k

1k$i+1

/.

Erste und dritte Summe lassen sich leicht als n $ k bzw. k $ 1 abschatzen(Ubung!).

Zusammen: 2(n $ 1).

In der Ubung zeigen wir:#

1#i<k<j#n

1j$i+1 ! n.

Zusammen: E(Ck) ! 4n.

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 79

Kapitel 1 Divide-and-Conquer Selektionsproblem

Satz 1.6.1Der Algorithmus Quickselect lost das Auswahlproblem und hat eineerwartete Vergleichsanzahl von ! 4n und eine erwartete Laufzeit von O(n).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 80

Kapitel 1 Divide-and-Conquer Selektionsproblem

Mitteilung:

(a) Eine genauere Analyse ergibt fur " = k/n konstant eine erwarteteVergleichsanzahl von 2(1 + H(") ln 2 + o(1))n < (3.3863 + o(1)) · n.Dabei ist H(") = $" log"$ (1$ ") log(1$ ")die

”binare Entropie“.

Sie liegt zwischen 0 und 1; das Maximum 1 ist bei " = 12 , was der Suche

nach dem Median entspricht.

(b) Die beste Schranke fur die erwartete Vergleichsanzahl bei einemAlgorithmus fur das Auswahlproblem, namlich 3

2n + o(n), erreicht einanderer randomisierter Algorithmus (siehe Vorlesung

”Randomisierte

Algorithmen“).

FG KTuEA, TU Ilmenau E!ziente Algorithmen – Sommersemester 2012 81