Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und...

21
Asymptotische Notationen Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 2 / 42 Algorithmen und Datenstrukturen SS09 Foliensatz 2 Michael Brinkmeier Technische Universit¨ at Ilmenau Institut f¨ ur Theoretische Informatik Sommersemester 2009 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 1 / 42

Transcript of Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und...

Page 1: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Asymptotische Notationen

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 2 / 42

Algorithmen und Datenstrukturen SS09Foliensatz 2

Michael Brinkmeier

Technische Universitat IlmenauInstitut fur Theoretische Informatik

Sommersemester 2009

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 1 / 42

Page 2: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Einige Notationen

Notationen

N = 0, 1, 2, 3, . . . (Nach DIN-5473 enthalt N die 0)

N+ = n ∈ N | n > 0 = 1, 2, 3, . . .

R+0 = x ∈ R | x ≥ 0

R+ = x ∈ R | x > 0

Fur zwei Mengen X und Y sei XY die Menge der Abbildungen von Ynach X , z.B.

R+0

N=

f | f : N → R+0

Fur eine Menge X ist 2X die Potenzmenge von X , d.h. die Menge allerTeilmengen von X

2X := U | U ⊆ X

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 4 / 42

Zielsetzung

Ignorieren von konstanten Faktoren

Damit wird die Abhangigkeit von Programmiersprache, Prozessortyp,Rechenmodel usw. unterdruckt.

Asymptotische Sichtweise

d.h. Ignorieren von Werten fur kleine n.

Empirische Tatsache: Das Verhalten fur große Eingabegroßen n istmeist schon bei

”normalen“ Eingabegroßen entscheidend.

Damit sind wir nur noch an Großenklassen bzw. Großenordnungen vonFunktionen interessiert.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 3 / 42

Page 3: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Die O-Notation

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 6 / 42

Die O-Notation

Definition (O(f ))

Fur eine beliebiges f ∈ R+0

Nsei O(f ) die folgende Teilmenge von R

+0

N:

O(f ) :=

g ∈ R+0

N | ∃n0 ∈ N ∃C > 0

∀n ≥ n0 : g(n) ≤ C · f (n)

Anders formuliert: g ∈ O(f ), falls fur genugend große n eine KonstanteC > 0 existiert, so dass g(n) nicht großer als C · f (n) ist.

Wichtig!: Die Konstante hangt nicht von n ab!

Falls g ∈ O(f ), sagen wird”g ist von der Ordnung f“.

Oder auch: g wachst asymptotisch und unter Vernachlassigung konstanterFaktoren hochstens so schnell wie f .

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 5 / 42

Page 4: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Schreib- und Sprechweisen

g(n) = O(f (n)) ist ein Ersatz fur g ∈ O(f ).

Wichtig: In diesem Kontext ist das”=“ nicht symmetrisch!

”g(n) ist O(f (n))“ ist eine Sprechweise

Die Intuition hinter diesen Schreib- und Sprechweisen ist, dass O(f (n)) furein beliebiges Element aus O(f ) steht.

Beispiel

Die Rechenzeit des Algorithmus Straight Insertion Sort uber einer Eingabex = (a1, . . . , an) der Lange n ist O(n2).

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 8 / 42

Die O-Notation – Beispiele

C ∈ O(1) fur jede Konstante C > 0.

g(n) = 2n + 3 ≤ 3n fur alle n ≥ 3 und somit g ∈ O(n).

g(n) = 14n3 − 3n2 + 10 ≤ 14n3 fur alle n ≥ 2 und somit g ∈ O(n3).

g(n) = 3 + 2 sin(n) ≤ 5 fur alle n ≥ 0 und somit g ∈ O(1).

g(n) =

2n n gerade2n

n ungerade≤ 2 · n fur alle n ≥ 0 und somit g ∈ O(n).

n3 6∈ O(n2), denn es gilt

n3 ≤ C · n2 ⇔ n ≤ C .

D.h. fur jede Wahl von n0 und C wurde n > maxn0, C die Bedingungn3 ≤ C · n2 verletzen.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 7 / 42

Page 5: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Konvention

Innerhalb der O(. . . )-Termes sollen nur moglichst kleine und einfacheFunktionen verwendet werden.

Gute Beispiele:

17n2/(log n)3 + 13n3/2 = O(n2/(log n)3) ist klein

17n2/(log n)3 + 13n2 = O(n2) ist einfach

Schlechte Beispiele:

3n2 − 10n + 100 = O(3n2) enthalt unnotige konstante Faktoren.

3n2 − 10n + 100 = O(n100) ist eine viel zu große Schranke.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 10 / 42

Noch mehr Beispiele

2n + 3 = O(n)

2n + 3 = O(n2)

2n2 + 3n + 3 = O(n2)

4 · 2n + 3 · n2 = O(2n)

4n2 log n + 2n(log n)3 = O(n2 log n), denn fur n ≥ 2 gilt (log n)2 ≤ n.

3 + 2 sin(n) = O(1)

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 9 / 42

Page 6: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine Hierarchie von Funktionen

0

2

4

6

8

10

10 20 30 40 50 60 70 80 90 100

log n√

(x)

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 12 / 42

Eine Hierarchie von Funktionen

O(3n)

O(en)

O(2n)

O(n3)

O(n2)

O(n(log n)2)

O(n log n)

O(n)

O“

nlog n

O(√

n)

O(log n)

Ubungsaufgabe!

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 11 / 42

Page 7: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine Hierarchie von Funktionen

0

20

40

60

80

100

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

n

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 14 / 42

Eine Hierarchie von Funktionen

0

2

4

6

8

10

12

14

16

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 13 / 42

Page 8: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine Hierarchie von Funktionen

0

500

1000

1500

2000

2500

3000

3500

4000

4500

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

n(log n)2

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 16 / 42

Eine Hierarchie von Funktionen

0

100

200

300

400

500

600

700

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 15 / 42

Page 9: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine Hierarchie von Funktionen

0

200000

400000

600000

800000

1e+06

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

n(log n)2

n2

n3

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 18 / 42

Eine Hierarchie von Funktionen

0

2000

4000

6000

8000

10000

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

n(log n)2

n2

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 17 / 42

Page 10: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine Hierarchie von Funktionen

0

5e+42

1e+43

1.5e+43

2e+43

2.5e+43

3e+43

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

n(log n)2

n2

n3

2x

en

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 20 / 42

Eine Hierarchie von Funktionen

0

2e+29

4e+29

6e+29

8e+29

1e+30

1.2e+30

1.4e+30

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

n(log n)2

n2

n3

2x

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 19 / 42

Page 11: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Wachstumsordnungen und Rechenzeiten

n

tA(n) 10 100 1000 104 105 106 107 108

log n 33ns 66ns 0.1µs 0.1µs 0.2µs 0.2µs 0.2µs 0.3µs√

n 32ns 0.1µs 0.3µs 1µs 3.1µs 10µs 31µs 0.1msn 100ns 1µs 10µs 0.1ms 1ms 10ms 0.1s 1s

n log n 0.3µs 6.6µs 0.1ms 1.3ms 16ms 0.2s 2.3s 27s

n3/2 0.3µs 10µs 0.3ms 10ms 0.3s 10s 5.2m 2.7hn

2 1µs 0.1ms 10ms 1s 1.7m 2.8h 11d 3.2yn

3 10µs 10ms 10s 2.8h 115d 317y 3.2·105y

1.1n 26ns 0.1ms 7.8·1025y2n 10µs 4·1014yn! 36ms 3·10142yn

n 1.7m 3.2·10184y

1 Elementaroperation benotigt 10 ns

Zum Vergleich:Die geschatzte Zeit seit dem Urknall:13.5 · 109

− 14 · 109 Jahre.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 22 / 42

Eine Hierarchie von Funktionen

0

1e+47

2e+47

3e+47

4e+47

5e+47

6e+47

10 20 30 40 50 60 70 80 90 100

log n√

(x)n

log n

nn log n

n(log n)2

n2

n3

2x

en

3x

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 21 / 42

Page 12: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Die Konstanten und schnellere Rechner

In vielen Anwendungen wachst – nicht zu letzt wegen der wachsendenSpeicherkapazitaten – die Menge der zu verarbeitenden Daten deutlichschneller, als die Rechnerleistung.

Beispiele:

1 Indizes der Internet-Suchmaschinen.

2 Routenplaner, Fahrplan-, Ticketsysteme der Bahn.

3 Computergraphik (Szenen aus Milliarden von Elementen!)

Auf Grund dieses Ungleichgewichtes ist die Effizienz der benutztenAlgorithmen wichtiger als je zuvor!

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 24 / 42

Die Konstanten und schnellere Rechner

Frage

Wie wachst die maximal behandelbare Eingabegroße, wenn der Rechner umden Faktor 10 schneller wird?

tA(n) Maxalt MaxNEU

log n n n10

√n n 100n

n n 10n

n log n n 10n ·log n

log n+log 10

n3/2

n 4.64nn

2n 3.16n

n3

n 2.15n

nk

n 101/kn

cn

n n + logc 10

n! um von n auf n + 1 zu kommen,n

n braucht man einen um den Faktor n

schnelleren Rechner

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 23 / 42

Page 13: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine asymptotische untere Schranke

Definition (Ω(f ))

Fur eine beliebiges f ∈ R+0

Nsei Ω(f ) (Groß-Omega von f ) die folgende

Teilmenge von R+0

N:

Ω(f ) :=

g ∈ R+0

N | ∃n0 ∈ N ∃D > 0

∀n ≥ n0 : g(n)≥D · f (n)

Sprechweise

g ∈ Ω(f ) ⇔ g(n) ist asymptotisch und bis auf einen konstanten Faktordurch f nach unten beschrankt.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 26 / 42

Die Laufzeit von Straight Insertion Sort

Die Anzahl der Elementaroperationen von Stright Insertion Sort (SIS) auf nElementen ergab sich im schlechtesten Fall als

3

2n2 +

7

2n − 4

und im besten Fall als5n − 4.

Satz (Laufzeit von SIS)

Es giltTSIS (n) = O(n2) und TSIS,best(n) = O(n).

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 25 / 42

Page 14: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Beispiele

0.3 · n log n − 20n = Ω(n log n)

denn fur log n ≥ 100 gilt 0.3n log n − 20n ≥ 0.1n log n.

0.1 · n2 − 20n + 1 = Ω(n2)

denn fur n ≥ 10 ·√

9999 + 1000 gilt 0.1 · n2 − 20n + 1 ≥ 0.09n2.

n10 log n = Ω(n10)

denn n10 log n ≥ n10 fur n ≥ 2.

TSIS = Ω(n2) und TSIS,best = Ω(n)

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 28 / 42

Eine asymptotische untere Schranke

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 27 / 42

Page 15: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Asymptotische Gleichheit

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 30 / 42

Asymptotische Gleichheit

Definition (Θ(f ))

Fur eine beliebiges f ∈ R+0

Nsei Θ(f ) (Theta von f ) die folgende Teilmenge

von R+0

N:

Θ(f ) := O(f ) ∩ Ω(f ) =

g ∈ R+0

N | ∃n0 ∈ N ∃C , D > 0

∀n ≥ n0 : C · f (n) ≥ g(n) ≥ D · f (n)

Sprechweise

g ∈ Θ(f ) ⇔ g(n) ist asymptotisch und bis auf konstante Faktoren vonderselben Großenordnung wie f .

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 29 / 42

Page 16: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine striktere asymptotische obere Schranke

Definition (o(f ))

Fur eine beliebiges f ∈ R+0

Nsei o(f ) die folgende Teilmenge von R

+0

N:

o(f ) :=

g ∈ R+0

N | limn→∞

g(n)

f (n)= 0

Sprechweise

g ∈ o(f ) ⇔ g(n) wachst asymptotisch streng langsamer als f (n).

Beispielen

log n= o(n)

n2 log n = o(n9/2)

n10 = o(2n)

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 32 / 42

Beispiele

0.3 · n log n − 20n = Θ(n log n)

denn fur log n ≥ 100 gilt 0.3n log n − 20n ≥ 0.1n log n.

0.1 · n2 − 20n + 1 = Θ(n2)

denn fur n ≥ 10 ·√

9999 + 1000 gilt 0.1 · n2 − 20n + 1 ≥ 0.09n2.

n10 log n = Θ(n10 log n)

denn n10 log n ≥ n10 fur n ≥ 2.

TSIS = Θ(n2) und TSIS,best = Θ(n)

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 31 / 42

Page 17: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Eine kurze UbersichtMan kann eine Analogie wischen den asymptotischen Notationen und denGroßenvergleichen reeller Zahlen ziehen:

Asymptotisch Reelle Zahleng ∈ O(f ) g ≤ fg ∈ Ω(f ) g ≥ fg ∈ Θ(f ) g = fg ∈ o(f ) g < fg ∈ ω(f ) g > f

Im Gegensatz zu reellen Zahlen muss aber nicht jedes Paar von Funktionenbezuglich dieser Relationen vergleichbar sein.

Beispiel

f (n) = n2 und g(n) =

n falls n gerade

n3 falls n ungerade

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 34 / 42

Eine striktere asymptotische untere Schranke

Definition (ω(f ))

Fur eine beliebiges f ∈ R+0

Nsei ω(f ) die folgende Teilmenge von R

+0

N:

ω(f ) :=

g ∈ R+0

N | limn→∞

g(n)

f (n)= ∞

Sprechweise

g ∈ o(f ) ⇔ g(n) wachst asymptotisch echt schneller als f (n).

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 33 / 42

Page 18: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Die Grenzwertregel

Lemma (Grenzwertregel)

Falls f (n) > 0 fur alle n ≥ n0 und eine Konstante C ≥ 0 existiert mit

limn→∞

g(n)

f (n)= C ,

dann ist g ∈ O(f ). Ist C > 0, gilt sogar g ∈ Θ(f ).

Beweis: Ubungsaufgabe

Korollar

g ∈ o(f ) ⇒ g ∈ O(f )

Beweis.

g ∈ o(f ) ist genau dann der Fall, wenn die Voraussetzung derGrenzwertregel fur C = 0 erfullt ist.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 36 / 42

Rechenregeln

Satz (Rechenregeln fur O)

Sei C > 0 eine Konstante und f , f1, f2, g , g1, g2, h ∈ RPZN mit g ∈ O(f ) undgi ∈ O(fi ) fur i = 1, 2.

Dann gilt:

1 O(C · f ) = O(f )

2 g1 + g2 ∈ O(f1 + f2)

3 g1 · g2 ∈ O(f1 · f2)4 O(f1 + f2) = O (max(f1, f2))

5 Falls g ∈ O(f ) und f ∈ O(h), dann gilt g ∈ O(h), bzw.

g ∈ O(f ) ⇒ O(g) ⊆ O(f ).

Die Aussagen gelten auch fur Ω(.), Θ(.) und o(.).

Beweis: Ubungsaufgabe.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 35 / 42

Page 19: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

Terme kleiner Ordnung

Lemma

Gilt f (n) fur n ≥ n0 und |g | ∈ o(f ), und ist h ∈ O(f + g), so ist

h ∈ O(f ).

Beweis

Da h ∈ O(f + g) gilt, existiert ein C > 0 und ein n1, so dass

h(n) ≤ C · (f (n) + g(n)) fur n ≥ n1.

Wegen g ∈ o(f ) gilt weiterhin limn→∞g(n)f (n) = 0 und somit existiert fur jedes

ε > 0 ein n2 ≥ n0 so dass fur n ≥ n2

g(n)

f (n)≤ ε ⇔ g(n) ≤ ε · f (n).

. . .

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 38 / 42

Polynome

KorollarSei g ein Polynom der Form

g(n) = aknk + ak−1n

k−1 + · · · + a1n + a0

mit ak , ak−1, . . . , a1, a0 ∈ R und ak > 0. Dann gilt

g ∈ Θ(nk).

Beweis.

limn→∞

g(n)

nk= lim

n→∞

(

ak +ak−1

n+ · · · + a1

nk−1+

a0

nk

)

= ak > 0.

Damit folgt die Behauptung aus der Grenzwertregel.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 37 / 42

Page 20: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

O von Summen variabler Lange

Beispiel

In einem Algorithmus wird eine Schleife insgesamt n-mal durchlaufen. Deri-te Durchlauf verursacht Kosten von O(n · 2i).

Da die maximalen Kosten pro Runde O(n · 2n) sind, ist

O(n · (n · 2n)) = O(n2 · 2n)

eine gultige asymptotische obere Schranke.

Aber: 2 + 22 + · · · + 2n−1 + 2n = 2n+1 − 2 = O(2n).

Damit konnten die Gesamtkosten unter Umstanden O(n · 2n) sein.

Problem: Die Zahl der Summanden ist nicht konstant, sondern wachst mitn. Damit greift die Additivitat nicht.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 40 / 42

Terme kleiner Ordnung

Beweis (Fortsetzung)

Damit ergibt sich fur n ≥ maxn0, n2, n2

h(n) ≤ C · (f (n) + g(n)) ≤ C · (f (n) + εf (n)) = C (1 + ε)f (n)

und somit h ∈ O(f ).

Eine analoge Aussage gilt fur Ω(.), Θ(.) und o(.).

FazitIn Summen sind nur die dominierenden Terme entscheidend.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 39 / 42

Page 21: Algorithmen und Datenstrukturen SS09 - Startseite TU Ilmenau · Die O-Notation Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 42 Die O-Notation Definition

O von Summen variabler Lange

Lemma (O von Summen variabler Lange)

Sei g : N × N → R+0 eine Abbildung. Ferner sei fur jedes n ∈ N eine

Zahlenfolge an1 , . . . , a

nl(n) der Lange l(n) gegeben.

Gibt es eine Konstante C > 0 und ein n0 ∈ N, so dass fur alle n ≥ n0 und1 ≤ i ≤ l(n) folgendes gilt:

0 ≤ ani ≤ C · g(n, i).

(Wir sagen: ani ist uniform durch ein Vielfaches von g(n, i) beschrankt)

Dann gilt fur jedes n ∈ N:

l(n)∑

i=1

ani = O

l(n)∑

i=1

g(n, i)

.

Man beachte, dass die Konstante C fur alle Folgenglieder ani und alle

Folgen gilt. Deshalb”uniform“.

Algorithmen und Datenstrukturen SS09

M. Brinkmeier

TU Ilmenau Seite 41 / 42