Größenordnungen von Funktionen Notation: Algorithmen und Datenstrukturen 2. Vorlesung N = {0, 1, 2, 3, . . .} N+ = {n ∈ N | n > 0} = {1, 2, 3, . . .} R+ 0 = {x ∈ R | x ≥ 0} Martin Dietzfelbinger R+ = {x ∈ R | x > 0} 14. April 2008 Uns interessieren meistens (als Rechenaufwand oder Abschätzungen hierfür) nur Funktionen, die schließlich“ po” sitiv oder nichtnegativ sind. – Abkürzung: F + := {f | f : N → R, ∃n0∀n ≥ n0 : f (n) > 0}. F0+ := {f | f : N → R, ∃n0∀n ≥ n0 : f (n) ≥ 0}. FG KTuEA, TU Ilmenau AuD – 14.04.2008 FG KTuEA, TU Ilmenau AuD – 14.04.2008 • Ignorieren von konstanten Faktoren. – Idee: Unterdrücke Abhängigkeit von Programmiersprache, Prozessor, usw. • Ignorieren von konstanten Faktoren und Termen kleinerer Ordnung. – Ziel: Vereinfachung. 1 O-Notation Informal: g ist von der Ordnung f“ (Notation O(f )), wenn: ” • Asymptotische Sichtweise“: Werte für kleine“ n ” ” ignorieren. – Erfahrungstatsache: Verhalten für große Eingabegrößen n häufig schon entscheidend bei normalen“ ” n. 2f g Funktionen mit unterschiedlich schnellem Wachstum bilden Hierarchie. – Ausschnitt (vgl. Übung!): log n, √ n, n , n, nlog n, n(log n)2, n2, n3, 2n, en, 3n log n n0 Für genügend große n ist 0 ≤ g(n) ≤ c · f (n), für c > 0 konstant. Bem.: In dieser Vorlesung: log x bedeutet log2 x. FG KTuEA, TU Ilmenau AuD – 14.04.2008 f 2 FG KTuEA, TU Ilmenau AuD – 14.04.2008 3 O-Notation O-Notation Formal: Beispiele: Definition (a) Wenn g(n) = 2n − 7 und f (n) = n, dann ist g ∈ O(f ). Sei f ∈ F +. (b) Wenn g(n) = 2n − 7 und f (n) = n2, dann ist g ∈ O(f ). O(f ) := { g ∈ F0+ | ∃n0 ∈ N ∃c > 0 (c) Wenn g(n) = 4n3 − 13n2 + 10 und f (n) = n3 log n, dann ist g ∈ O(f ). ∀n ≥ n0 : g(n) ≤ c · f (n)} (d) Wenn g(n) = 3+2 sin(n) und f (n) ≡ 1, dann ist g ∈ O(f ). Intuition I: g ∈ O(f ) heißt, dass g asymptotisch (für genügend große n) und unter Vernachlässigung konstanter Faktoren höchstens so schnell wächst wie f . FG KTuEA, TU Ilmenau AuD – 14.04.2008 4 (e) Wenn g(n) = 2n für gerade n und g(n) = 2/n für ungerade n, und f (n) = n, dann ist g ∈ O(f ). FG KTuEA, TU Ilmenau AuD – 14.04.2008 O(f (n))-Notation O(f (n))-Notation Beispiele: Schreib- und Sprechweisen: (i) g(n) = O(f (n)) als Abkürzung für g ∈ O(f ). (a) 2n − 7 = O(n). (ii) g(n) ist O(f (n))“. Sprich: g(n) ist Groß-Oh von f (n)“ ” ” Warnung: Das =“ bedeutet nicht Gleichheit, ist nicht ” symmetrisch. (b) Jede Funktion g mit 2n log n ≤ g(n) ≤ 4n2/ log n für alle n ≥ 10 erfüllt g(n) = O(n2). Intuition II: (d) 4 · 2n + 3 · n2 = O(2n). O(f (n)) steht für ein beliebiges Element von O(f ). F0+, (Eine anonyme Funktion g ∈ von der man nur weiß, dass sie für genügend große n durch c · f (n) beschränkt ist.) Damit z. B. sinnvoll: 3n3 + 2n2 − 5n + 4 = 3n3 + O(n2). FG KTuEA, TU Ilmenau AuD – 14.04.2008 5 6 (c) 2n2 − 30n + 3 = O(n2). (e) 4n2 log n + 2n(log n)3 = O(n3). (e) 4n2 log n + 2n(log n)3 = O(n2 log n). (f) 3 + 2 sin(n) = O(1). FG KTuEA, TU Ilmenau AuD – 14.04.2008 7 Konvention: o-Notation Möglichst kleine und möglichst einfache Funktionen innerhalb des O(. . .)-Terms. 17n2/(log n)3 + 13n3/2 = O(n2/(log n)3) 17n2/(log n)3 + 13n3/2 = O(n2) (klein) g(n) wächst asymptotisch streng langsamer als f (n).“ ” oder f (einfach) g FG KTuEA, TU Ilmenau AuD – 14.04.2008 8 FG KTuEA, TU Ilmenau AuD – 14.04.2008 9 Ω-Notation o-Notation Definition g(n) ist asymptotisch und bis auf einen konstanten Faktor ” durch f nach unten beschränkt.“ + Für f ∈ F : g(n) = 0} n→∞ f (n) o(f ) := {g ∈ F0+ | lim f Schreibe g(n) = o(f (n))“ für g ∈ o(f ). ” (Sprich: g(n) ist klein-oh von f (n)“.) ” Beispiele: (a) n/ log n = o(n). g f /2 (b) 5n2 log n + 7n2.1 = o(n5/2). (c) n10 = o(2n). FG KTuEA, TU Ilmenau AuD – 14.04.2008 n0 10 FG KTuEA, TU Ilmenau AuD – 14.04.2008 11 Manchmal benutzt: Für f ∈ F +: Ω-Notation ω(f ) := {g ∈ F + | limn→∞ fg(n) (n) = ∞} Definition Ω(f ) := {g ∈ F + | g(n) wächst asymptotisch echt schneller als f .“ ” Schreibe g(n) = ω(f (n))“ für g ∈ ω(f ). ” (Sprich: g(n) ist klein-omega von f (n)“.) ” ∃n0 ∈ N ∃d > 0 ∀n ≥ n0 : g(n) ≥ d · f (n)} Klar: Für f, g ∈ F + gilt: g ∈ ω(f ) ⇔ f ∈ o(g). Schreibe g(n) = Ω(f (n))“ für g ∈ Ω(f ). ” (Sprich: g(n) ist Groß-Omega von f (n)“.) ” Beispiele: (a) 0.3n log n − 20n = Ω(n log n). (b) 1 2 10 n − 20n + 1 = Ω(n2). (c) n10 log n = Ω(n10). FG KTuEA, TU Ilmenau AuD – 14.04.2008 12 FG KTuEA, TU Ilmenau AuD – 14.04.2008 Θ-Notation 13 Θ-Notation g(n) ist asymptotisch und bis auf konstante Faktoren von ” derselben Größenordnung wie f (n).“ Für f ∈ F + definiere: Θ(f ) := O(f ) ∩ Ω(f ) , d.h. Θ(f ) = {g ∈ F + | ∃n0 ∈ N ∃c, d > 0 ∀n ≥ n0 : d · f (n) ≤ g(n) ≤ c · f (n)} 2f Beobachtung: g ∈ Θ(f ) ⇔ O(g) = O(f ). Schreibe g(n) = Θ(f (n))“ für g ∈ Θ(f ). ” (Sprich: g(n) ist Theta von f (n)“.) ” f g f /2 n0 FG KTuEA, TU Ilmenau AuD – 14.04.2008 14 FG KTuEA, TU Ilmenau AuD – 14.04.2008 15 Rechenregeln Rechenregeln Lemma 1 (Grenzwertregel) + F0+ Falls f ∈ F , g ∈ ist g(n) = O(f (n)). und limn→∞ fg(n) (n) Folgerung aus der Grenzwertregel: = c für ein c ≥ 0, so Wenn g ein Polynom ist: g(n) = ak nk + ak−1nk−1 + · · · + a1n + a0 Spezialfälle: für ak , . . . , a1, a0 ∈ R, wobei ak > 0, und f (n) = nk , dann c = 0: Voraussetzung bedeutet: g(n) = o(f (n)). Also: g(n) = o(f (n)) ⇒ g(n) = O(f (n)) c > 0: g(n) ak−1 a0 a1 lim = lim ak + + · · · + k−1 + k = ak , n→∞ f (n) n→∞ n n n limn→∞ fg(n) (n) = c impliziert: Es gibt n0, so dass für n ≥ n0 gilt: c/2 < g(n) f (n) damit: ak nk + ak−1nk−1 + · · · + a1n + a0 = O(nk ). < 2c. Sogar: . . . = Θ(nk ). Also: g(n) = Θ(f (n)), also g(n) = O(f (n)). FG KTuEA, TU Ilmenau AuD – 14.04.2008 16 FG KTuEA, TU Ilmenau Rechenregeln AuD – 14.04.2008 17 Rechenregeln Lemma 2 (Transitivität) Lemma 3 ( Konstante Faktoren weglassen“) ” Ist g(n) = O(d · f (n)) und d > 0 beliebig, dann gilt g(n) = O(f (n)). Es seien f, g ∈ F +. Dann gilt für jedes h ∈ F0+: Wenn g(n) = O(f (n)) und h(n) = O(g(n)), dann folgt h(n) = O(f (n)). D.h.: Wenn d > 0, dann ist O(d · f ) = O(f ). D.h.: Wenn g ∈ O(f ), dann ist O(g) ⊆ O(f ). Beispiele: Kurz: h(n) = O(g(n)) = O(f (n)). Nicht g(n) = O(3n log2.8 n), sondern g(n) = O(n log n); nicht g(n) = O(n/3), sondern g(n) = O(n); nicht g(n) = O(2.5), sondern g(n) = O(1). Achtung: In der O(f (n))-Notation bedeutet =“ keine Gleich” heit, die Relation ist nicht symmetrisch. FG KTuEA, TU Ilmenau AuD – 14.04.2008 18 Analog bei o(·), Ω(·), ω(·), Θ(·). FG KTuEA, TU Ilmenau AuD – 14.04.2008 19 Beispiele: Rechenregeln 10n log n + 5n2 = O(n log n) + O(n2) = O(n2). Lemma 4 (Linearität und Maximumsregel) 10n log n + 5n2 = Θ(n log n) + Θ(n2) = Θ(n2). Ist g1(n) = O(f1(n)) und g2(n) = O(f2(n)), so folgt 10n log n + 5n2 = Ω(n log n) + Ω(n2) = Ω(n2). g1(n) + g2(n) = O(f1(n) + f2(n)) = O(max{f1(n), f2(n)}). Anwendung: Hintereinanderausführung von Algorithmen: Rechenzeiten addieren sich, auch in der O-Abschätzung. Analog bei o(·), Ω(·), ω(·), Θ(·). FG KTuEA, TU Ilmenau AuD – 14.04.2008 20 FG KTuEA, TU Ilmenau Rechenregeln AuD – 14.04.2008 21 Rechenregeln Lemma 5 (Weglassen von Termen kleinerer Ordnung“) ” Ist f ∈ F + und |g(n)| = o(f (n)), und ist h(n) = O(f (n) + g(n)), so ist h(n) = O(f (n)). Lemma 6 (Multiplikationsregel) Ist g1(n) = O(f1(n)) und g2(n) = O(f2(n)), so folgt g1(n)g2(n) = O(f1(n)f2(n)). Analog bei o(·), Ω(·), ω(·), Θ(·). Analog bei o(·), Ω(·), ω(·), Θ(·). Bei o(·) genügt sogar: g1(n) = O(f1(n)) und g2(n) = o(f2(n)). Fazit: In Summen suche den dominierenden Term“; ” lasse die anderen weg. FG KTuEA, TU Ilmenau AuD – 14.04.2008 Anwendung: Sei g1(n) = O(f1(n)) und g2(n) = O(f2(n)). Wird eine Schleife g1(n)-mal ausgeführt, wobei die Kosten für die einmalige Ausführung höchstens g2(n) betragen, dann sind die Gesamtkosten O(f1(n)f2(n)). 22 FG KTuEA, TU Ilmenau AuD – 14.04.2008 23 Rechenregeln Rechenregeln Lemma 7 (O-Notation in Summen) O-Notation in Summen Beispiel: Unterschiedliche Kosten für Schleifenrumpf bei verschiedenen Durchläufen. n Durchläufe, Kosten beim i-ten Durchlauf: O(n · 2i). Sei g : N × N → R+ 0. Für jedes n ∈ N sei an,1, . . . , an,t(n) Zahlenfolge mit ∃c > 0∃n0∀n ≥ n0∀1 ≤ i ≤ t(n) : 0 ≤ an,i ≤ c · g(n, i). ( an,i ist uniform durch ein Vielfaches von g(n, i) be” schränkt“; man schreibt kurz: an,i = O(g(n, i))) Maximum: O(n · 2n). Multiplikationsregel liefert: O(n · (n · 2n)) = O(n2 · 2n). Dann gilt (die Variable ist n): ⎛ an,i = O ⎝ Aber: 2 + 22 + 23 + · · · + 2n−1 + 2n = 2n+1 − 2 = O(2n). n Vermutung: Gesamtkosten sind nur O(n · 2 ). 1≤i≤t(n) FG KTuEA, TU Ilmenau AuD – 14.04.2008 24 Achtung! AuD – 14.04.2008 AuD – 14.04.2008 25 Beispiel: Algorithmus Straight Insertion Sort (Pseudocode) (1) for i from 2 to n do (2) x ← A[i] ; (3) j ← i-1 ; (4) while j ≥ 1 and x.key < A[j].key do (5) A[j+1] ← A[j] ; (6) j ← j-1 ; (7) A[j+1] ← x. ⎞ g(n, i)⎠ 1≤i≤t(n) ist. FG KTuEA, TU Ilmenau 1≤i≤t(n) Gegeben: Algorithmus A für Inputmenge I. ∀1 ≤ i ≤ t(n) : 0 ≤ an,i ≤ cn · g(n, i), 1≤i≤t(n) g(n, i)⎠ Anwendung: Kosten“ — Rechenzeiten“ ” ” Wenn es für jedes n ≥ n0 ein cn gibt mit (an,i nicht-uniform beschränkt), dann kann man nicht folgern, dass ⎛ an,i = O ⎝ FG KTuEA, TU Ilmenau ⎞ 26 FG KTuEA, TU Ilmenau AuD – 14.04.2008 27 Kosten“ – Rechenzeiten ” Kosten“ – Rechenzeiten ” Kosten, Aufwand, Rechenzeit“, wenn Algorithmus A auf ” Eingabe x abläuft. Jede Elementaroperation op ist mit einer Konstanten cop bewertet. Eingabegröße: n = |x| = size(x). Idee: op benötigt höchstens Zeit cop (Takte oder μs) In = {x ∈ I | size(x) = n} – Größenklasse Technische Unterschiede (Prozessoren, Speicher usw.) können bei der Festlegung der Konstanten berücksichtigt werden. Beim Sortierproblem: size((a1, . . . , an)) = n Die Konstanten cop werden nie explizit genannt. FG KTuEA, TU Ilmenau AuD – 14.04.2008 28 FG KTuEA, TU Ilmenau AuD – 14.04.2008 29 Kosten Kosten kop(x) sei die Anzahl der Ausführungen der Elementaroperation op bei der Ausführung von A auf x. Dann: Beispiel: Im S.I.S.-Algorithmus wird auf der Eingabe (1, 2, 3, 4) der Zeilenendetest j ≥ 1“ in Zeile (4) genau dreimal durch” geführt, tA(x) := kop(x) · cop. auf Eingabe (2, 1, 4, 3) wird er fünfmal durchgeführt. op Operation Analog für die anderen Operationen: jeder Input liefert ein anderes Bild. Wir nennen tA(x) die Kosten von A auf x. Die Kosten stellen ein ungefähres Maß für die Rechenzeit dar. Wir sagen daher oft Rechenzeit“ anstatt Kosten“. ” ” Um die Kosten genau zu bestimmen, müsste man die Konstanten für alle ausgeführten Operationen addieren, für jedes x ∈ I! Zu kompliziert! Details haben keine Aussagekraft! → O-Notation. FG KTuEA, TU Ilmenau AuD – 14.04.2008 30 FG KTuEA, TU Ilmenau AuD – 14.04.2008 31 O-Notation bei Kosten O-Notation bei Kosten Beispiel: S.I.S.-Algorithmus. Mit Multiplikationsregel: Wir beobachten: jeder Durchlauf durch die innere Schleife in Zeilen (4)–(6) erfordert eine konstante (unabhängig von n) Anzahl an Operationen, Der i-te Durchlauf durch die äußere Schleife hat Kosten O(1)+ ki · O(ki) = O(1 + ki), wobei ki = #{j < i | key(aj ) > key(ai)} (abhängig von x!). hat also Kosten O(1). Mit Summationsregel: Der gesamte Ablauf hat Kosten tS.I.S(x) = O(n + ki). 2≤i≤n Sogar: tS.I.S(x) = Θ(n + FG KTuEA, TU Ilmenau AuD – 14.04.2008 32 FG KTuEA, TU Ilmenau 2≤i≤n ki). AuD – 14.04.2008 Worst-case-Kosten 33 Worst-case-Kosten worst-case-Kosten oder Kosten im schlechtesten Fall: Beispiel S.I.S.: Sei A Algorithmus für Inputs aus I. Für den Input x = (n, n − 1, . . . , 1) gilt Erinnerung: In = {x ∈ I | size(x) = n} n+ worst-case-Kosten: ki = n + 2≤i≤n TA(n) = max{tA(x) | x ∈ In} Für jeden Input gilt n + n + n(n−1) . 2 (i − 1) = n + 2≤i≤n 2≤i≤n ki ≤ n+ n(n − 1) . 2 2≤i≤n(i − 1) = Wenn man betonen will, dass es um die worst-case Kosten geht: TA,worst(n). Also: TS.I.S.,worst(n) = O(n + n2) = O(n2), sogar = Θ(n2). FG KTuEA, TU Ilmenau FG KTuEA, TU Ilmenau AuD – 14.04.2008 34 AuD – 14.04.2008 35 Best-case-Kosten Average-case Kosten best-case-Kosten oder Kosten im besten Fall: average-case-Kosten oder durchschnittliche Kosten: Gegeben sei, für jedes n ∈ N, eine Wahrscheinlichkeitsverteilung Prn auf In. TA,best(n) = min{tA(x) | x ∈ In} D.h.: Für jedes x ∈ In ist eine Wahrscheinlichkeit Prn(x) festgelegt. (Empirisch, oder per Festlegung.) Beispiel S.I.S.: Für den Input (1, 2, . . . , n) gilt n+ 2≤i≤n für jeden Input gilt n + ki = n + 0 = n; TA,av(n) = E(tA) = 2≤i≤n 2≤i≤n ki Prn(x) · tA(x). x∈In (Erwartungswert, berechnet mit Prn; Mittelwert“) ” ≥ n. Also: TS.I.S.,best(n) = O(n), sogar = Θ(n). FG KTuEA, TU Ilmenau AuD – 14.04.2008 36 FG KTuEA, TU Ilmenau Average-case Kosten AuD – 14.04.2008 37 Average-case Kosten Beispiel S.I.S.: Bilde Mittelwert/Erwartungswert für Fx = Vereinfachung: Für alle i = j: key(ai) < key(aj ) oder key(ai) > key(aj ). Fx := #{(j, i) | 1 ≤ j < i ≤ n, key(aj ) > key(ai)} Wahrscheinlichkeitsannahme (Standard für das Sortierproblem): Jede Anordnung der Eingabezahlen Wahrscheinlichkeit. hat 2≤i≤n ki. Anzahl der Fehlstände“ in x = (a1, . . . , an). ” Z. B. gibt es in (3, 7, 2) zwei Fehlstände. dieselbe D. h.: jede Anordnung der Schlüssel (a1, . . . , an) tritt mit Wahrscheinlichkeit 1/n! auf. (Beispiel bei Schlüsseln 2, 3, 7: (2, 3, 7), (2, 7, 3), (3, 2, 7), (3, 7, 2), (7, 2, 3), (7, 3, 2): je 16 ) FG KTuEA, TU Ilmenau AuD – 14.04.2008 38 FG KTuEA, TU Ilmenau AuD – 14.04.2008 39 Average-case Kosten Analyse von Kosten – Fazit Kann Erwartungswert (Mittelwert) berechnen: E(Fx) = 12 · n2 = 14 n(n − 1) (Grob: Jedes der n2 Paare (j, i) weist mit Wahrscheinlichkeit 1 1 2 einen Fehlstand auf, trägt also 2 zur mittleren Anzahl der Fehlstände bei.) Aufwand von Straight Insertion Sort im mittleren Fall, auf Inputs der Länge n, unter der Gleichverteilungsannahme: AuD – 14.04.2008 Selbst für feste Implementierung eines Algorithmus A auf fester Maschine und feste Eingabegröße“ n = size(x) = |x| ” kann der Berechnungsaufwand auf verschiedenen Inputs höchst unterschiedlich sein. Begriff Die Laufzeit von Algorithmus A auf Eingaben x vom ” Umfang n = size(x)“ ist meist sinnlos. 1 TS.I.S,av(n) = Θ(n + n(n − 1)) = Θ(n2). 4 FG KTuEA, TU Ilmenau Fazit: Sinnvoll: Schlechtester und bester Fall, eventuell durchschnittlicher Fall. 40 FG KTuEA, TU Ilmenau AuD – 14.04.2008 41 Ignorieren konstanter Faktoren – Beispiel: Analyse von Kosten – Fazit Alternativer Sortieralgorithmus: Mergesort. (1. Sem.) In allen drei Situationen: Rechenzeit/Kosten: O(n log n). Obere Schranken → O-Notation. Mergesort wird für genügend große Inputs“ schneller sein als ” Straight Insertion Sort, auch wenn wir die Konstanten nicht kennen. Untere Schranken → Ω-Notation . Asymptotisches Verhalten, präzise: Θ-Notation. Konstante Faktoren ignorieren! FG KTuEA, TU Ilmenau AuD – 14.04.2008 42 FG KTuEA, TU Ilmenau AuD – 14.04.2008 43 Ein Vergleich: 10n log n versus n2/5 Ein Vergleich: 10n log n versus n2/5 n log n versus n*n, bis n=500 n log n versus n*n, bis n=3000 50000 1.8e+06 1.6e+06 40000 1.4e+06 1.2e+06 30000 1e+06 800000 20000 600000 400000 10000 200000 0 100 200 x 300 400 0 500 500 1000 1500 10*n*log n n*n/5 FG KTuEA, TU Ilmenau 2000 x 2500 3000 10*n*log n n*n/5 AuD – 14.04.2008 44 Ein Vergleich: 10n log n versus n2/5 FG KTuEA, TU Ilmenau AuD – 14.04.2008 45 Ein Vergleich: 10n log n versus n2/5 n log n versus n*n, bis n=10000 n log n versus n*n, bis n=1000000 1e+11 2e+07 8e+10 1.5e+07 6e+10 1e+07 4e+10 5e+06 2e+10 0 2000 4000 x 6000 8000 0 10000 200000 10*n*log n n*n/5 FG KTuEA, TU Ilmenau AuD – 14.04.2008 400000 x 600000 800000 1e+06 10*n*log n n*n/5 46 FG KTuEA, TU Ilmenau AuD – 14.04.2008 47 Vergleich einiger Wachstumsordnungen Hilft ein schnellerer Rechner? Zeit für eine (Elementar-)Operation: 10 ns. tA(n) 10 100 1000 log √n n n n log n n3/2 n2 n3 1.1n 2n n! nn 33ns 32ns 100ns 0.3μs 0.3μs 1μs 10μs 26ns 10μs 36ms 1.7m 66ns 0.1μs 1μs 6.6μs 10μs 0.1ms 10ms 0.1ms 4.0·1014y 3.0·10142y 3.2·10184y 0.1μs 0.3μs 10μs 0.1ms 0.3ms 10ms 10s 7.8·1025y FG KTuEA, TU Ilmenau Wie wächst die maximal behandelbare Eingabegröße, wenn der Rechner n 104 105 106 107 108 0.1μs 1μs 0.1ms 1.3ms 10ms 1s 2.8h 0.2μs 3.1μs 1ms 16ms 0.3s 1.7m 115d 0.2μs 10μs 10ms 0.2s 10s 2.8h 317y 0.2μs 31μs 0.1s 2.3s 5.2m 11d 3.2·105y 0.3μs 0.1ms 1s 27s 2.7h 3.2y AuD – 14.04.2008 48 Hilft ein schnellerer Rechner? Angetrieben durch die höheren Rechengeschwindigkeiten und die noch rascher wachsenden Speicherkapazitäten wächst in vielen Bereichen die Menge der zu bewältigenden Daten noch schneller als die Rechnergeschwindigkeit. Beispiele: Indizes der Internet-Suchmaschinen. Routenplaner, Fahrplan-, Ticketsysteme der Bahn. Computergraphik (Szenen aus zig Milliarden von Elementen!) Effizienz der benutzten Algorithmen ist wichtiger denn je! FG KTuEA, TU Ilmenau AuD – 14.04.2008 50 um den Faktor 10 schneller wird? tA(n) Maxalt MaxNEU log n n n10 √ n n 100n n n 10n log n n log n n 10n · log n+log 10 n3/2 n 4.64n n2 n 3.16n n3 n 2.15n nk n 101/k n cn n n + logc 10 n! um von n auf n + 1 zu kommen, nn braucht man einen um den Faktor n schnelleren Rechner FG KTuEA, TU Ilmenau AuD – 14.04.2008 49