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
21
Embed
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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
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
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
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
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
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
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
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.