Programmieren und Problemlösen
|
|
- Jobst Voss
- vor 5 Jahren
- Abrufe
Transkript
1 Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling Februar 2019
2 Komplexität von Algorithmen
3 Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe erhält berechnet, ob x eine Primzahl ist dabei den %-Operator verwendet davon abhängig Primzahl oder einen Teiler von x ausgibt Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 1 / 35
4 Primzahltest public class PrimeTest { public static void main(string[] args) { Out.print("Input number: "); int x = In.readInt(); int d = 2; while (d < x) { if (x % d == 0) { Out.println("No prime number, divisor: " + d); return; } d += 1; } Out.println("Prime number"); } } Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 2 / 35
5 Primzahltest Wie lange braucht der Algorithmus, um Ausgabe zu erzeugen? Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 3 / 35
6 Primzahltest Wie lange braucht der Algorithmus, um Ausgabe zu erzeugen? Was ist seine Laufzeit? Hängt von Anzahl Schleifendurchläufe ab Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 3 / 35
7 Primzahltest Wie lange braucht der Algorithmus, um Ausgabe zu erzeugen? Was ist seine Laufzeit? Hängt von Anzahl Schleifendurchläufe ab Absoluter Wert ergibt keinen Sinn Schleife wird (ungefähr) x Mal durchlaufen (wenn x prim ist) Laufzeit wächst mit x Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 3 / 35
8 Primzahltest Wie lange braucht der Algorithmus, um Ausgabe zu erzeugen? Was ist seine Laufzeit? Hängt von Anzahl Schleifendurchläufe ab Absoluter Wert ergibt keinen Sinn Schleife wird (ungefähr) x Mal durchlaufen (wenn x prim ist) Laufzeit wächst mit x... aber wie schnell? Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 3 / 35
9 Laufzeit Funktion der Eingabelänge Wir messen Laufzeit als Funktion der Eingabelänge Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 4 / 35
10 Laufzeit Funktion der Eingabelänge Wir messen Laufzeit als Funktion der Eingabelänge Für unseren Algorithmus ist die Eingabe eine Zahl x Zahlen werden im Computer binär dargestellt Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 4 / 35
11 Laufzeit Funktion der Eingabelänge Wir messen Laufzeit als Funktion der Eingabelänge Für unseren Algorithmus ist die Eingabe eine Zahl x Zahlen werden im Computer binär dargestellt Wenn wir führende Nullen ignorieren, gilt für n Bits 2 n 1 ist 10 }.{{.. 00}, 2 n ist 10 }.{{.. 01},... und 2 n 1 ist 11 }.{{.. 11} n n n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 4 / 35
12 Laufzeit Funktion der Eingabelänge Wir messen Laufzeit als Funktion der Eingabelänge Für unseren Algorithmus ist die Eingabe eine Zahl x Zahlen werden im Computer binär dargestellt Wenn wir führende Nullen ignorieren, gilt für n Bits 2 n 1 ist 10 }.{{.. 00}, 2 n ist 10 }.{{.. 01},... und 2 n 1 ist 11 }.{{.. 11} n n n Eine Zahl, die mit n Bits dargestellt wird, hat ungefähr die Grösse 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 4 / 35
13 Laufzeit Technologiemodell Random Access Machine Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 5 / 35
14 Laufzeit Technologiemodell Random Access Machine Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt Speichermodell: Konstante Zugriffszeit Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 5 / 35
15 Laufzeit Technologiemodell Random Access Machine Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt Speichermodell: Konstante Zugriffszeit Elementare Operationen: Rechenoperation (+,,,... ), Vergleichsoperationen, Zuweisung / Kopieroperation, Flusskontrolle (Sprünge) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 5 / 35
16 Laufzeit Technologiemodell Random Access Machine Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt Speichermodell: Konstante Zugriffszeit Elementare Operationen: Rechenoperation (+,,,... ), Vergleichsoperationen, Zuweisung / Kopieroperation, Flusskontrolle (Sprünge) Einheitskostenmodell: Elementare Operation hat Kosten 1 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 5 / 35
17 Laufzeit Technologiemodell Random Access Machine Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt Speichermodell: Konstante Zugriffszeit Elementare Operationen: Rechenoperation (+,,,... ), Vergleichsoperationen, Zuweisung / Kopieroperation, Flusskontrolle (Sprünge) Einheitskostenmodell: Elementare Operation hat Kosten 1 Datentypen: Fundamentaltypen wie grössenbeschränkte Ganzzahl oder Fliesskommazahl Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 5 / 35
18 Laufzeit Anmerkung Wir sind an dieser Stelle nicht ganz exakt Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 6 / 35
19 Laufzeit Anmerkung Wir sind an dieser Stelle nicht ganz exakt Wenn unsere Eingabe als int kodiert ist, hat sie immer dieselbe Länge Es existieren Java-Datentypen für beliebig grosse Zahlen, die wir hier aber nicht verwenden Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 6 / 35
20 Laufzeit Anmerkung Wir sind an dieser Stelle nicht ganz exakt Wenn unsere Eingabe als int kodiert ist, hat sie immer dieselbe Länge Es existieren Java-Datentypen für beliebig grosse Zahlen, die wir hier aber nicht verwenden Die Kodierung einer Fliesskommazahl kann man nicht sofort aus ihrer Grösse ablesen Eine Addition ist sicherlich schneller zu bewältigen als eine Multiplikation Die Zeit der Addition zweier n-bit-zahlen hängt von n ab Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 6 / 35
21 Laufzeit Anmerkung Wir sind an dieser Stelle nicht ganz exakt Wenn unsere Eingabe als int kodiert ist, hat sie immer dieselbe Länge Es existieren Java-Datentypen für beliebig grosse Zahlen, die wir hier aber nicht verwenden Die Kodierung einer Fliesskommazahl kann man nicht sofort aus ihrer Grösse ablesen Eine Addition ist sicherlich schneller zu bewältigen als eine Multiplikation Die Zeit der Addition zweier n-bit-zahlen hängt von n ab Logarithmisches Kostenmodell berücksichtigt dies, verwenden wir aber ebenfalls nicht Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 6 / 35
22 Komplexität von Algorithmen Laufzeit unseres Primzahltests
23 Laufzeit unseres Primzahltests Angenommen, x ist eine Primzahl und mit n Bits dargestellt Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 7 / 35
24 Laufzeit unseres Primzahltests Angenommen, x ist eine Primzahl und mit n Bits dargestellt Anzahl Schleifendurchläufe wächst mit Grösse von x 2 n Die Schleife wird also ca. 2 n Mal ausgeführt Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 7 / 35
25 Laufzeit unseres Primzahltests Angenommen, x ist eine Primzahl und mit n Bits dargestellt Anzahl Schleifendurchläufe wächst mit Grösse von x 2 n Die Schleife wird also ca. 2 n Mal ausgeführt Wir wollen elementare Operationen zählen Algorithmus führt vier Operationen pro Iteration aus Insgesamt ca. 4 2 n Operationen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 7 / 35
26 Laufzeit unseres Primzahltests Angenommen, x ist eine Primzahl und mit n Bits dargestellt Anzahl Schleifendurchläufe wächst mit Grösse von x 2 n Die Schleife wird also ca. 2 n Mal ausgeführt Wir wollen elementare Operationen zählen Algorithmus führt vier Operationen pro Iteration aus Insgesamt ca. 4 2 n Operationen Uns interessiert, wie sich Laufzeit verhält, wenn n wächst Ignoriere Konstante 4 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 7 / 35
27 Komplexität von Algorithmen Asymptotische obere Schranken
28 Asymptotische obere Schranken Genaue Laufzeit lässt sich selbst für kleine Eingaben kaum voraussagen Uns interessieren obere Schranken Betrachte das asymptotische Verhalten eines Algorithmus Ignoriere alle konstanten Faktoren Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 8 / 35
29 Asymptotische obere Schranken Genaue Laufzeit lässt sich selbst für kleine Eingaben kaum voraussagen Uns interessieren obere Schranken Betrachte das asymptotische Verhalten eines Algorithmus Ignoriere alle konstanten Faktoren Beispiel Lineares Wachstum mit Steigung 5 ist genauso gut wie lineares Wachstum mit Steigung 1 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 8 / 35
30 Asymptotische obere Schranken Genaue Laufzeit lässt sich selbst für kleine Eingaben kaum voraussagen Uns interessieren obere Schranken Betrachte das asymptotische Verhalten eines Algorithmus Ignoriere alle konstanten Faktoren Beispiel Lineares Wachstum mit Steigung 5 ist genauso gut wie lineares Wachstum mit Steigung 1 Quadratisches Wachstum mit Koeffizient 10 ist genauso gut wie quadratisches Wachstum mit Koeffizient 1 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 8 / 35
31 Asymptotische obere Schranken Gross-O-Notation Die Menge O(2 n ) enthält alle Funktionen, die nicht schneller wachsen als c 2 n für eine Konstante c Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 9 / 35
32 Asymptotische obere Schranken Gross-O-Notation Die Menge O(2 n ) enthält alle Funktionen, die nicht schneller wachsen als c 2 n für eine Konstante c O(g(n)) enthält alle Funktionen f(n), die nicht schneller wachsen als c g(n) für eine Konstante c, wobei f und g positiv sind Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 9 / 35
33 Asymptotische obere Schranken Gross-O-Notation Die Menge O(2 n ) enthält alle Funktionen, die nicht schneller wachsen als c 2 n für eine Konstante c O(g(n)) enthält alle Funktionen f(n), die nicht schneller wachsen als c g(n) für eine Konstante c, wobei f und g positiv sind Verwende die asymptotische Notation zur Kennzeichnung der Laufzeit von Algorithmen Wir schreiben O(n 2 ) und meinen, dass der Algorithmus sich für grosse n (maximal) wie n 2 verhält: verdoppelt sich die Eingabelänge, so vervierfacht sich die Laufzeit (maximal) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 9 / 35
34 Asymptotische obere Schranken Formale Definition Gross-O-Notation Formale Definition Für jede Funktion g : N R + ist O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 10 / 35
35 Asymptotische obere Schranken Formale Definition Gross-O-Notation Formale Definition Für jede Funktion g : N R + ist O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} Wir verwenden O(g) und O(g(n)) synonym Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 10 / 35
36 Asymptotische obere Schranken Formale Definition Gross-O-Notation Formale Definition Für jede Funktion g : N R + ist O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} Wir verwenden O(g) und O(g(n)) synonym Sie finden in der Literatur oftmals f = O(g) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 10 / 35
37 Asymptotische obere Schranken Formale Definition Gross-O-Notation Formale Definition Für jede Funktion g : N R + ist O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} Wir verwenden O(g) und O(g(n)) synonym Sie finden in der Literatur oftmals f = O(g) Dies ist zu verstehen als f O(g) Denn aus f 1 = O(g) und f 2 = O(g) folgt natürlich nicht f 1 = f 2 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 10 / 35
38 Asymptotische obere Schranken Anschauung g(n) = n 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 11 / 35
39 Asymptotische obere Schranken Anschauung g(n) = n 2 f O(g) n 0 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 11 / 35
40 Asymptotische obere Schranken Anschauung g(n) = n 2 f O(g) h O(g) n 0 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 11 / 35
41 Asymptotische obere Schranken Beispiele O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} f(n) f O(?) Beispiel 3n + 4 2n n n n + n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 12 / 35
42 Asymptotische obere Schranken Beispiele O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n n n n + n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 12 / 35
43 Asymptotische obere Schranken Beispiele O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n O(n) c = 2, n 0 = 0 n n n + n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 12 / 35
44 Asymptotische obere Schranken Beispiele O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n O(n) c = 2, n 0 = 0 n n O(n 2 ) c = 2, n 0 = 100 n + n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 12 / 35
45 Asymptotische obere Schranken Beispiele O(g(n)) = {f : N R + c > 0, n 0 N: n n 0 : f(n) c g(n)} f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n O(n) c = 2, n 0 = 0 n n O(n 2 ) c = 2, n 0 = 100 n + n O(n) c = 2, n 0 = 1 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 12 / 35
46 Asymptotische obere Schranken Eigenschaft f 1 O(g) und f 2 O(g) impliziert f 1 + f 2 O(g) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 13 / 35
47 Asymptotische obere Schranken Eigenschaft f 1 O(g) und f 2 O(g) impliziert f 1 + f 2 O(g) Es existieren n 1, c 1, sodass für alle n > n 1 gilt, dass f 1 (n) c 1 g(n) Ferner existieren n 2, c 2, sodass für alle n > n 2 gilt, dass f 2 (n) c 2 g(n) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 13 / 35
48 Asymptotische obere Schranken Eigenschaft f 1 O(g) und f 2 O(g) impliziert f 1 + f 2 O(g) Es existieren n 1, c 1, sodass für alle n > n 1 gilt, dass f 1 (n) c 1 g(n) Ferner existieren n 2, c 2, sodass für alle n > n 2 gilt, dass f 2 (n) c 2 g(n) Sei n 0 := max{n 1, n 2 } und c := max{c 1, c 2 } Dann ist f 1 (n) c g(n) und f 2 (n) c g(n) für alle n n 0 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 13 / 35
49 Asymptotische obere Schranken Eigenschaft f 1 O(g) und f 2 O(g) impliziert f 1 + f 2 O(g) Es existieren n 1, c 1, sodass für alle n > n 1 gilt, dass f 1 (n) c 1 g(n) Ferner existieren n 2, c 2, sodass für alle n > n 2 gilt, dass f 2 (n) c 2 g(n) Sei n 0 := max{n 1, n 2 } und c := max{c 1, c 2 } Dann ist f 1 (n) c g(n) und f 2 (n) c g(n) für alle n n 0 Also gilt f 1 (n) + f 2 (n) 2 c g(n) für alle n n 0 Somit folgt, dass f 1 + f 2 in O(g) ist Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 13 / 35
50 Komplexität von Algorithmen Asymptotische untere Schranken
51 Asymptotische untere Schranken Formale Definition Gross-Ω-Notation Formale Definition Für jede Funktion g : N R + ist Ω(g) = {f : N R c > 0, n 0 N: n n 0 : c g(n) f(n)} Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 14 / 35
52 Asymptotische untere Schranken Anschauung g(n) = n n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 15 / 35
53 Asymptotische untere Schranken Anschauung f Ω(g) g(n) = n n 0 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 15 / 35
54 Asymptotische untere Schranken Anschauung h Ω(g) f Ω(g) g(n) = n n 0 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 15 / 35
55 Komplexität von Algorithmen Asymptotische scharfe Schranken
56 Asymptotisch scharfe Schranke Formale Definition Definition Für jede Funktion g : N R + ist Θ(g) = Ω(g) O(g) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 16 / 35
57 Asymptotisch scharfe Schranke Anschauung f Θ(n 2 ) n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 17 / 35
58 Asymptotisch scharfe Schranke Anschauung f Θ(n 2 ) h(n) = 0.5 n 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 17 / 35
59 Asymptotisch scharfe Schranke Anschauung g(n) = n 2 f Θ(n 2 ) h(n) = 0.5 n 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 17 / 35
60 Komplexität von Algorithmen Laufzeit-Analyse
61 Wachstumsbezeichnungen Funktion in Beschreibung Beispiel O(1) konstant Array-Zugriff O(log n) logarithmisch Binäre sortierte Suche O(n) linear Unsortierte naive Suche O(n log n) superlinear / loglinear Gute Sortieralgorithmen O(n 2 ) quadratisch Einfache Sortieralgorithmen O(n c ) polynomiell Matrixmultiplikation O(2 n ) exponentiell Traveling Salesman Dynamic Programming O(n!) faktoriell Traveling Salesman naiv Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 18 / 35
62 Kleine n 60 n 4 2 n 40 n n ln n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 19 / 35
63 Grössere n n n n log n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 20 / 35
64 Grosse n n n 4 n log n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 21 / 35
65 Logarithmen 1,000 n n 3/2 n log n n log n 50 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 22 / 35
66 Zeitbedarf Nehmen wir an, 1 elementare Operation braucht 1µs Eingabelänge log 2 n 1µs n 1µs n log 2 n 1µs n 2 1µs 2 n 1µs Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 23 / 35
67 Zeitbedarf Nehmen wir an, 1 elementare Operation braucht 1µs Eingabelänge log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs n log 2 n 1µs n 2 1µs 2 n 1µs Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 23 / 35
68 Zeitbedarf Nehmen wir an, 1 elementare Operation braucht 1µs Eingabelänge log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs n 2 1µs 2 n 1µs Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 23 / 35
69 Zeitbedarf Nehmen wir an, 1 elementare Operation braucht 1µs Eingabelänge log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs 700µs 13/100µs 20s 8.5 Stunden n 2 1µs 2 n 1µs Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 23 / 35
70 Zeitbedarf Nehmen wir an, 1 elementare Operation braucht 1µs Eingabelänge log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs 700µs 13/100µs 20s 8.5 Stunden n 2 1µs 1/100s 1.7 Minuten 11.5 Tage 317 Jahrhund. 2 n 1µs Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 23 / 35
71 Zeitbedarf Nehmen wir an, 1 elementare Operation braucht 1µs Eingabelänge log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs 700µs 13/100µs 20s 8.5 Stunden n 2 1µs 1/100s 1.7 Minuten 11.5 Tage 317 Jahrhund. 2 n 1µs Jahrh. Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 23 / 35
72 Einfluss schnellerer Computer Na gut... dann kaufe ich mir eben eine neue Maschine. Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 24 / 35
73 Einfluss schnellerer Computer Na gut... dann kaufe ich mir eben eine neue Maschine. Wenn aktuelle Maschine Eingaben der Länge n lösen kann, dann kann eine 10 oder 100 Mal so schnelle Maschine... Komplexität (Geschwindigkeit 10) (Geschwindigkeit 100) log 2 n n n 2 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 24 / 35
74 Einfluss schnellerer Computer Na gut... dann kaufe ich mir eben eine neue Maschine. Wenn aktuelle Maschine Eingaben der Länge n lösen kann, dann kann eine 10 oder 100 Mal so schnelle Maschine... Komplexität (Geschwindigkeit 10) (Geschwindigkeit 100) log 2 n n n 10 n n 100 n n 2 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 24 / 35
75 Einfluss schnellerer Computer Na gut... dann kaufe ich mir eben eine neue Maschine. Wenn aktuelle Maschine Eingaben der Länge n lösen kann, dann kann eine 10 oder 100 Mal so schnelle Maschine... Komplexität (Geschwindigkeit 10) (Geschwindigkeit 100) log 2 n n n 10 n n 100 n n 10 n n 100 n n 2 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 24 / 35
76 Einfluss schnellerer Computer Na gut... dann kaufe ich mir eben eine neue Maschine. Wenn aktuelle Maschine Eingaben der Länge n lösen kann, dann kann eine 10 oder 100 Mal so schnelle Maschine... Komplexität (Geschwindigkeit 10) (Geschwindigkeit 100) log 2 n n n 10 n n 100 n n 10 n n 100 n n 2 n 3.16 n n 10 n 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 24 / 35
77 Einfluss schnellerer Computer Na gut... dann kaufe ich mir eben eine neue Maschine. Wenn aktuelle Maschine Eingaben der Länge n lösen kann, dann kann eine 10 oder 100 Mal so schnelle Maschine... Komplexität (Geschwindigkeit 10) (Geschwindigkeit 100) log 2 n n n 10 n n 100 n n 10 n n 100 n n 2 n 3.16 n n 10 n 2 n n n n n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 24 / 35
78 Asymptotische Komplexität Beispiele n O(n 2 ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
79 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
80 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
81 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
82 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
83 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) ist falsch, denn 2n2 cn = 2 n ist nicht konstant c Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
84 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) ist falsch, denn 2n2 cn O(n) O(n 2 ) = 2 n ist nicht konstant c Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
85 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) ist falsch, denn 2n2 cn O(n) O(n 2 ) ist korrekt, = 2 n ist nicht konstant c Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
86 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) ist falsch, denn 2n2 = 2 n ist nicht konstant cn c O(n) O(n 2 ) ist korrekt, Θ(n) Θ(n 2 ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
87 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) ist falsch, denn 2n2 = 2 n ist nicht konstant cn c O(n) O(n 2 ) ist korrekt, Θ(n) Θ(n 2 ) ist falsch: Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
88 Asymptotische Komplexität Beispiele n O(n 2 ) ist korrekt, aber ungenau: n O(n) und sogar n Θ(n) 3n 2 O(2n 2 ) ist korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ) 2n 2 O(n) ist falsch, denn 2n2 = 2 n ist nicht konstant cn c O(n) O(n 2 ) ist korrekt, Θ(n) Θ(n 2 ) ist falsch: n Ω(n 2 ) Θ(n 2 ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 25 / 35
89 Problem-Komplexität Definition Die Komplexität eines Problems P entspricht den minimalen (asymptotischen) Kosten über alle Algorithmen, die P lösen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 26 / 35
90 Problem-Komplexität Definition Die Komplexität eines Problems P entspricht den minimalen (asymptotischen) Kosten über alle Algorithmen, die P lösen Obere Schranken durch Angabe eines Algorithmus Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 26 / 35
91 Problem-Komplexität Definition Die Komplexität eines Problems P entspricht den minimalen (asymptotischen) Kosten über alle Algorithmen, die P lösen Obere Schranken durch Angabe eines Algorithmus Zu testen, ob eine n-bit-zahl prim ist, hat Komplexität in O(2 n ) Sortieren von n Zahlen vom Typ int hat Komplexität in O(n log n) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 26 / 35
92 Problem-Komplexität Definition Die Komplexität eines Problems P entspricht den minimalen (asymptotischen) Kosten über alle Algorithmen, die P lösen Obere Schranken durch Angabe eines Algorithmus Zu testen, ob eine n-bit-zahl prim ist, hat Komplexität in O(2 n ) Sortieren von n Zahlen vom Typ int hat Komplexität in O(n log n) Untere Schranken sind viel schwerer zu zeigen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 26 / 35
93 Problem-Komplexität Definition Die Komplexität eines Problems P entspricht den minimalen (asymptotischen) Kosten über alle Algorithmen, die P lösen Obere Schranken durch Angabe eines Algorithmus Zu testen, ob eine n-bit-zahl prim ist, hat Komplexität in O(2 n ) Sortieren von n Zahlen vom Typ int hat Komplexität in O(n log n) Untere Schranken sind viel schwerer zu zeigen Stärkere Schranken als Ω(n) nur unter Zusatzannahmen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 26 / 35
94 Ein schnellerer Primzahltest Erster Versuch
95 Ein schnellerer Primzahltest Ziel Laufzeit ausserhalb Ω(2 n ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 27 / 35
96 Ein schnellerer Primzahltest Ziel Laufzeit ausserhalb Ω(2 n ) Beobachtung Wenn x nicht durch 2 teilbar ist, dann ist sie auch nicht durch 4 oder 6 oder 8 etc. teilbar Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 27 / 35
97 Ein schnellerer Primzahltest Ziel Laufzeit ausserhalb Ω(2 n ) Beobachtung Wenn x nicht durch 2 teilbar ist, dann ist sie auch nicht durch 4 oder 6 oder 8 etc. teilbar Es reicht dann nur ungerade Zahlen zu testen Algorithmus muss nur noch die Hälfte der Zahlen testen Schleife wird nur noch x/2 Mal durchlaufen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 27 / 35
98 Ein schnellerer Primzahltest Out.print("Input number: "); int x = In.readInt(); if (x % 2 == 0) { Out.println("Even number"); return; } int d = 3; while (d < x) { if (x % d == 0) { Out.println("No prime number, divisor: " + d); return; } d += 2; } Out.println("Prime number"); Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 28 / 35
99 Ein schnellerer Primzahltest Out.print("Input number: "); int x = In.readInt(); if (x % 2 == 0) { Out.println("Even number"); return; } int d = 3; while (d < x) { if (x % d == 0) { Out.println("No prime number, divisor: " + d); return; } d += 2; } Out.println("Prime number"); Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 28 / 35
100 Ein schnellerer Primzahltest Wie gross ist die Verbesserung? Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 29 / 35
101 Ein schnellerer Primzahltest Wie gross ist die Verbesserung? Schleife wird ca. x/2 Mal durchlaufen anstatt x Mal Laufzeit verbessert sich um Faktor 2 Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 29 / 35
102 Ein schnellerer Primzahltest Wie gross ist die Verbesserung? Schleife wird ca. x/2 Mal durchlaufen anstatt x Mal Laufzeit verbessert sich um Faktor 2 Sei x wieder mit n Bits dargestellt Insgesamt ca. 4 2 n /2 = 2 2 n elementare Operationen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 29 / 35
103 Ein schnellerer Primzahltest Wie gross ist die Verbesserung? Schleife wird ca. x/2 Mal durchlaufen anstatt x Mal Laufzeit verbessert sich um Faktor 2 Sei x wieder mit n Bits dargestellt Insgesamt ca. 4 2 n /2 = 2 2 n elementare Operationen Laufzeit noch immer in Ω(2 n ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 29 / 35
104 Ein schnellerer Primzahltest Wie gross ist die Verbesserung? Schleife wird ca. x/2 Mal durchlaufen anstatt x Mal Laufzeit verbessert sich um Faktor 2 Sei x wieder mit n Bits dargestellt Insgesamt ca. 4 2 n /2 = 2 2 n elementare Operationen Laufzeit noch immer in Ω(2 n ) Keine asymptotische Verbesserung Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 29 / 35
105 Ein schnellerer Primzahltest Zweiter Versuch
106 Ein schnellerer Primzahltest Beobachtung Wenn x keine Primzahl ist, dann ist x teilbar durch eine Zahl a mit 1 < a < x Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 30 / 35
107 Ein schnellerer Primzahltest Beobachtung Wenn x keine Primzahl ist, dann ist x teilbar durch eine Zahl a mit 1 < a < x Dann ist x auch durch Zahl b teilbar mit a b = x und 1 < b < x Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 30 / 35
108 Ein schnellerer Primzahltest Beobachtung Wenn x keine Primzahl ist, dann ist x teilbar durch eine Zahl a mit 1 < a < x Dann ist x auch durch Zahl b teilbar mit a b = x und 1 < b < x Es kann nicht sein, dass a > x und b > x, denn sonst wäre a b > x Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 30 / 35
109 Ein schnellerer Primzahltest public class PrimeTest { public static void main(string[] args) { Out.print("Input number: "); int x = In.readInt(); int d = 2; while (d < x) { if (x % d == 0) { Out.println("No prime number, divisor: " + d); return; } d += 1; } Out.println("Prime number"); } } Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 31 / 35
110 Ein schnellerer Primzahltest public class PrimeTest { public static void main(string[] args) { Out.print("Input number: "); int x = In.readInt(); int d = 2; while (d <= Math.sqrt(x)) { if (x % d == 0) { Out.println("No prime number, divisor: " + d); return; } d += 1; } Out.println("Prime number"); } } Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 31 / 35
111 Ein schnellerer Primzahltest Übung Wie gross ist diesmal die Verbesserung? Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 32 / 35
112 Ein schnellerer Primzahltest Übung Wie gross ist diesmal die Verbesserung? Was ist die Laufzeit dieses Algorithmus? Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 32 / 35
113 Ein schnellerer Primzahltest Übung Wie gross ist diesmal die Verbesserung? Was ist die Laufzeit dieses Algorithmus? Schleife wird x Mal durchlaufen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 32 / 35
114 Ein schnellerer Primzahltest Übung Wie gross ist diesmal die Verbesserung? Was ist die Laufzeit dieses Algorithmus? Schleife wird x Mal durchlaufen Laufzeit wächst mit Grösse des Werts von x Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 32 / 35
115 Ein schnellerer Primzahltest Übung Wie gross ist diesmal die Verbesserung? Was ist die Laufzeit dieses Algorithmus? Schleife wird x Mal durchlaufen Laufzeit wächst mit Grösse des Werts von x Laufzeit in O( 2 n ) Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 32 / 35
116 Ein schnellerer Primzahltest Übung 10,000,000 5,000, Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 33 / 35
117 Ein schnellerer Primzahltest Übung 10,000,000 5,000,000 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 33 / 35
118 Ein schnellerer Primzahltest Übung 10,000,000 5,000,000 2 n 2 n Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 33 / 35
119 Ein schnellerer Primzahltest Best- und Worst-Case-Analyse
120 Best- und Worst-Case-Analyse Welcher Algorithmus ist schneller? Out.print("Input number: "); int x = In.readInt(); int d = 2; while (d < Math.sqrt(x)) { if (x % d == 0) { Out.println("Composite number"); return; } d = d + 1; } Out.println("Prime number"); Out.print("Input number: "); int x = In.readInt(); int d = 2; boolean isprime = true; while (d < Math.sqrt(x)) { if (x % d == 0) { isprime = false; } d = d + 1; } if (isprime == true) { Out.println("Prime number"); } else { Out.println("Composite number"); } Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 34 / 35
121 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
122 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
123 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Schleife wird nach dem ersten Vergleich verlassen Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
124 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Schleife wird nach dem ersten Vergleich verlassen Early Exit Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
125 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Schleife wird nach dem ersten Vergleich verlassen Early Exit Rechter Algorithmus macht ca. 2 n Vergleiche Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
126 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Schleife wird nach dem ersten Vergleich verlassen Early Exit Rechter Algorithmus macht ca. 2 n Vergleiche Angenommen, x ist Primzahl Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
127 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Schleife wird nach dem ersten Vergleich verlassen Early Exit Rechter Algorithmus macht ca. 2 n Vergleiche Angenommen, x ist Primzahl Dann machen beide Algorithmen ca. 2 n Vergleiche Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
128 Best- und Worst-Case-Analyse Angenommen, x ist gerade Zahl Dann ist der linke Algorithmus sehr schnell Schleife wird nach dem ersten Vergleich verlassen Early Exit Rechter Algorithmus macht ca. 2 n Vergleiche Angenommen, x ist Primzahl Dann machen beide Algorithmen ca. 2 n Vergleiche ( ) Natürlich sollte der linke implementiert werden Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 Dennis Komm 35 / 35
129 Danke für die Aufmerksamkeit
2. Effizienz von Algorithmen
Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]
MehrInformatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018
1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich & Hermann Lehner FS 2018 23 1. Einführung Algorithmen und Datenstrukturen, erstes Beispiel 24 Ziele der Vorlesung Verständnis des Entwurfs
MehrInformatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, erstes Beispiel FS 2018 1 23 Ziele der Vorlesung Inhalte der Vorlesung Verständnis
MehrInformatik II. 1. Einführung. Inhalte der Vorlesung. Ziele der Vorlesung. Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, Korrektheit, erstes Beispiel FS 2019 1 2 Ziele der Vorlesung Inhalte der
Mehr3. Java - Sprachkonstrukte I
61 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 62 Ein Programm (also Klasse)
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen Vorlesung am D-Math (CSE) der ETH Zürich 1. Einführung Felix Friedrich Überblick, Algorithmen und Datenstrukturen, Korrektheit, erstes FS 2019 1 19 Ziele des Kurses Verständnis
Mehr3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrAsymptotik und Laufzeitanalyse
und Vorkurs Informatik SoSe13 08. April 2013 und Algorithmen = Rechenvorschriften Wir fragen uns: Ist der Algorithmus effizient? welcher Algorithmus löst das Problem schneller? wie lange braucht der Algorithmus
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
Mehr4. Effizienz von Algorithmen
Effizienz von Algorithmen 4. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]
MehrAlgorithmen und Datenstrukturen Effizienz und Funktionenklassen
Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren,
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise
MehrÜbungen zu Algorithmen
Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Organisatorisches Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD
MehrA6.1 Logarithmus. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A6.1 Logarithmus. A6.2 Landau-Notation. A6.
Algorithmen und Datenstrukturen 8. März 2018 A6. Laufzeitanalyse: Logarithmus and Landau-Symbole Algorithmen und Datenstrukturen A6. Laufzeitanalyse: Logarithmus and Landau-Symbole Marcel Lüthi and Gabriele
MehrZiele. Kapitel 10: Komplexität von Algorithmen und Sortierverfahren. Beispiel: Lineare Suche eines Elements in einem Array (1)
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 10: Komplexität von Algorithmen und Sortierverfahren Prof. Dr. David Sabel Lehr- und Forschungseinheit
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrClevere Algorithmen programmieren
ClevAlg 2017 Arithmetische Operationen Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 27. September 2017 Addition zweier Zahlen Addition von Zahlen Wir stellen Zahlen als Strings
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 4 Abgabe: Montag, 13.05.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes Gruppenmitglieds
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin Maike.Buchin@rub.de Raum NA 1/70 Sprechzeiten:
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach
MehrKomplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
MehrAbschnitt 7: Komplexität von imperativen Programmen
Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen
MehrÜbung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrKomplexität von Algorithmen
Ziele 2 Komplexität von Algorithmen Zeit- und Speicherplatzbedarf einer Anweisung berechnen können Zeit- und Speicherplatzbedarf einer Methode berechnen können Martin Wirsing Unterschiede der Komplexität
MehrDaten suchen und durchsuchen. Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie
Daten suchen und durchsuchen Lineare Suche Dennis Komm Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie Frühling 2019 1. April 2019 Lineare Suche Einfachste
MehrAlgoDat Fragen zu Vorlesung und Klausur
AlgoDat Fragen zu Vorlesung und Klausur Hochschule Fulda FB AI Sommersemester 2018 http://ad.rz.hs-fulda.de Peter Klingebiel, HS Fulda, AI Vorab: Was ist wichtig? AlgoDat - Fragen - Peter Klingebiel -
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Wiederholung: Validation Validation: nicht-formaler
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrObjektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III
Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrEinstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
MehrPräsenzübung Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
MehrDie asymptotische Notation
Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Asymptotik 1 / 9 Die asymptotische Notation f, g : N R 0 seien
MehrPraktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen
1 Grundlagen 1.1 Algorithmen und ihre formalen Eigenschaften, Datenstrukturen Ein Algorithmus ist ein mit formalen Mitteln beschreibbares, mechanisch nachvollziehbares Verfahren zur Lösung einer Klasse
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrEffiziente Algorithmen mit Python. D. Komm, T. Kohn
Effiziente Algorithmen mit Python D. Komm, T. Kohn Copyright c 2017, ABZ, ETH Zürich http://www.abz.inf.ethz.ch/ Version vom 7. September 2017. Effiziente Algorithmen mit Python 3 1 Effizienz Effizient
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 3 (27.4.2014) O-Notation, Asymptotische Analyse, Sortieren III Algorithmen und Komplexität Selection Sort Algorithmus SelectionSort (informell):
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die
MehrAlgorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/
Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/12 23.10.2011 Themen: Asymptotische Laufzeit von Algorithmen Experimentelle Analyse von Algorithmen Aufgabe 1 ( Asymptotische Laufzeit ) Erklären Sie,
MehrInformatik II. Woche 15, Giuseppe Accaputo
Informatik II Woche 15, 13.04.2017 Giuseppe Accaputo g@accaputo.ch 1 Themenübersicht Repetition: Pass by Value & Referenzen allgemein Repetition: Asymptotische Komplexität Live-Programmierung Aufgabe 7.1
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element
Mehr2 Wachstumsverhalten von Funktionen
Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten
MehrDatenstrukturen, Algorithmen und Programmierung 2
Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 2. VO SS 2009 16. April 2009 1 Überblick Asymptotische Schranken
MehrAlgorithmen und Datenstrukturen I Grundlagen
Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift
MehrDer Sprung ins Wasser... Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse. Und warum brauch ich das?! Organisatorisches 1
Der Sprung ins Wasser... Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de Worum geht es bei Algorithmen und Datenstrukturen? 14. Oktober 2015 Frank
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrKomplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Jeremias Weihmann Sommersemester 2014 Übungsblatt 2 28. April 2014 Grundlagen: Algorithmen und
MehrAlgorithmentheorie Randomisierung
Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
MehrAlgorithmen und Datenstrukturen
Technische Universität München WiSe 2012/13 Institut für Informatik I-16 Lösungsblatt 7 Dr. Tobias Lasser 3. Dezember 2012 Jakob Vogel Algorithmen und Datenstrukturen Aufgabe 1 Rechnen mit Landau-Symbolen
MehrStichpunktezettel fürs Tutorium
Stichpunktezettel fürs Tutorium Moritz und Dorian 13. Januar 2010 1 Komplexitätsanalyse 1.1 Einführendes Beispiel Gegeben ist der folgende Algorithmus, der eine Liste mit Zahlen sortiert: 1 void sort(list_t*
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 2 (23.4.2018) Sortieren II, Asymptotische Analyse, O-Notation Algorithmen und Komplexität Laufzeit Zeitmessung SelectionSort n 2 Laufzeit/n
MehrKomplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT
Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus Algorithmen verbrauchen Ressourcen Rechenzeit
MehrKomplexität von Algorithmen OOPM, Ralf Lämmel
Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i
Mehrfloat: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrV. Claus, Juli 2005 Einführung in die Informatik II 45
Um die Größenordnung einer reellwertigen oder ganzzahligen Funktion zu beschreiben, verwenden wir die so genannten Landau-Symbole (nach dem deutschen Mathematiker Edmund Landau, 1877-1938). Hierbei werden
MehrZunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:
Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das
MehrAlgorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen I Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Algorithmus..................................... 2 Problem
Mehr1 Asymptotische Notation
In diesem Kapitel wollen wir die Grundlagen der asymptotischen Notation vermitteln. Diese ist ein wichtiges Werkzeug zur Betrachtung der Effizienz eines Algorithmus. 1.1 Grundlagen und einleitende Beispiele
MehrInformatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann
Informatik II Algorithmen und Datenstrukturen Vorläufige Version 1 c 2002 Peter Thiemann 1 Einführung 1.1 Inhalt Wichtige Datentypen und ihre Implementierung (Datenstrukturen) Operationen auf Datenstrukturen
MehrAlgorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse
Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de 14. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/48 Der Sprung ins Wasser...
MehrInformatik I Komplexität von Algorithmen
Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrAlgorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse
Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de 14. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/48 Der Sprung ins Wasser...
MehrDas O-Tutorial. 1 Definition von O, Ω, Θ, o und ω
Definition von O, Ω, Θ, o und ω Das O-Tutorial Seien f und g zwei Funktionen von N nach R 0. Hierbei bezeichne R 0 die nicht-negativen reellen Zahlen. Die Funktionsmengen O, Ω, Θ, o und ω sind wie folgt
MehrThomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen)
Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 6 2. November 2010 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin
Mehr2. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1
Mehr8 Komplexitätstheorie
8 Komplexitätstheorie Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Grundidee der Komplexitätstheorie
MehrVL-04: Rekursionsgleichungen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger
VL-04: Rekursionsgleichungen (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger SS 2017, RWTH DSAL/SS 2017 VL-04: Rekursionsgleichungen 1/37 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer
MehrAlgorithmen I - Tutorium 28 Nr. 2
Algorithmen I - Tutorium 28 Nr. 2 11.05.2017: Spaß mit Invarianten (die Zweite), Rekurrenzen / Mastertheorem und Merging Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK
MehrAlgorithmen und Datenstrukturen 1 Kapitel 5
Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Mehrlim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
Mehr3.3 Laufzeit von Programmen
3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 3, Donnerstag 7.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 3, Donnerstag 7. November 2013 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
Mehr3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen
3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2015 Marc Bux, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD 26,
Mehr2. Tag. Teil II. 1.5 Interpretation der Grenzwertregeln
Teil II 2. Tag Die bisherige Darstellung war zwar weitgehend intuitiv, ist aber für Beweise über Komplexitätsaussagen nur bedingt geeignet. 1.5 Interpretation der Grenzwertregeln Für die Funktionen f,g
Mehr