Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen

Größe: px
Ab Seite anzeigen:

Download "Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen"

Transkript

1 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 von Problemen. Er kann in Form eines Programms von einem Computer bearbeitet werden. Korrektheit von Algorithmen (E. Dijkstra) Man kann durch Testen zwar die Anwesenheit, nicht aber die Abwesenheit von Fehlern zeigen. Formale Korrektheitsbeweise werden häufig mit Hilfe von Schleifenund Prozedurinvarianten geführt. Prof. Dr. Dietmar Seipel 1

2 Effizienz von Algorithmen Die wichtigsten Maße für die Effizienz sind der zur Ausführung des Algorithmus benötigte Speicherplatz und die benötigte Rechenzeit. experimentelle Messung mit Hilfe von repräsentativ gewählten Eingaben, formale Abschätzung der Kosten im besten Fall (best case), im schlechtesten Fall (worst case) und im Mittel (average case). Die Analyse des Verhaltens im Mittel ist häufig mathematisch schwierig durchzuführen. Datenstruktur Aufbau von (komplexen) Wertebereichen aus elementaren Wertebereichen mit Hilfe von Konstruktoren. Prof. Dr. Dietmar Seipel 2

3 1.2 Polynomprodukt Ein ganzzahliges Polynom vom Grad N 1 ist gegeben durch N ganzzahlige Koeffizienten a 0,..., a N 1 Z: Beispiel p(x) = a 0 + a 1 x 2 + a 2 x a N 1 x N 1 p(x) = x x 3 a 0 = 4, a 1 = 2, a 2 = 0, a 3 = 1, N = 4 Sei q(x) = b 0 + b 1 x b N 1 x N 1 ein weiteres Polynom vom Grade N. Frage Wie kann man das Produkt der Polynome r(x) = p(x) q(x) (effizient) berechnen? Prof. Dr. Dietmar Seipel 3

4 Beispiel q(x) = 2 x + x 2 (b 3 = 0) r(x) = p(x) q(x) = ( x x 3) (2 x + x 2) = 8 + ( 4 + 4) x + (4 2) x 2 + ( 2 + 2) x 3 + x 4 x 5 = x 2 + x 4 x 5 distributives Ausmultiplizieren Aufsammeln der Terme mit gleichen Exponenten Prof. Dr. Dietmar Seipel 4

5 Implementierung In Java deklariert man Polynome als Arrays. Deklaration in Java int p[n], q[n], r[2 * N - 1]; doppelt geschachtelte for Schleife for (int i = 0; i <= N - 1; i++) for (int j = 0; j <= N - 1; j++) r[i + j] = r[i + j] + p[i] * q[j]; Es werden N 2 Koeffizientenprodukte berechnet. Prof. Dr. Dietmar Seipel 5

6 1.2.1 Divide and Conquer Verfahren Verfahren zur Lösung eines Problems der Länge N. 1. Divide Teile das Problem der Größe N in (wenigstens) zwei annähernd gleich große Teilprobleme wenn N > 1 ist, sonst löse das Problem der Größe 1 direkt. 2. Conquer Löse die Teilprobleme auf dieselbe Art (rekursiv). 3. Merge Füge die Teillösungen zur Gesamtlösung zusammen. Prof. Dr. Dietmar Seipel 6

7 Wir nehmen nun an, dass N eine Zweierpotenz ist: N = 2 k, k N. mit p(x) = p l (x) + x N 2 pr (x) p l (x) = a 0 + a 1 x a N 2 1 x N 2 1, p r (x) = a N + a N x a N 1 x N 2 1 Ebenso kann man schreiben q(x) = q l (x) + x N 2 qr (x) mit geeigneten Polynomen q l (x) und q r (x) vom Grad N 2 1. Dann ist r(x) = p(x) q(x) = p l (x) q l (x) + ( p l (x) q r (x) + p r (x) q l (x) ) x N 2 + p r (x) q r (x) x N Prof. Dr. Dietmar Seipel 7

8 Beispiel N = 4 = 2 2 N 2 = 2 p(x) = x 1 x 3 q(x) = 2 x 1 + x 2 p(x) = x }{{} 1 +x 2 (0 1 x 1 ) }{{} p l (x) p r (x) q(x) = 2 1 x 1 }{{} q l (x) +x 2 (1 + 0 x 1 ) }{{} q r (x) r(x) = 8 2 x 2 + ( x x + 1 x 2) x 2 + (0 1 x + 0) x 4 = x 2 + x 4 x 5 Prof. Dr. Dietmar Seipel 8

9 Berechnung von 4 Produkten von Polynomen vom Grad N 2 1. M(N) = Anzahl der Multiplikationen von Koeffizienten, die ausgeführt werden, wenn man zwei Polynome vom Grad N 1 mit N Koeffizienten miteinander multipliziert. Rekursionsformel M(N) = 4 M M(1) = 1 ( N 2 ), für N = 2 k, k N 0 M(N) = M ( 2 k) = 4 M ( 2 k 1) = 4 2 M ( 2 k 2) =... = 4 k M ( 2 0) = 4 k = ( 2 2) k = 2 2k = ( 2 k) 2 = N 2 }{{} =1 Prof. Dr. Dietmar Seipel 9

10 1.2.2 Divide and Conquer Verfahren (nach KARATSUBA) Man kann aber mit weniger Koeffizientenmultiplikationen auskommen: Dann ist: z l (x) = p l (x) q l (x) z r (x) = p r (x) q r (x) z m (x) = ( p l (x) + p r (x) ) ( q l (x) + q r (x) ) r(x) = p(x) q(x) = z l (x) + ( z m (x) z l (x) z r (x) ) x N 2 + zr (x) x N Prof. Dr. Dietmar Seipel 10

11 Divide and Conquer Verfahren (nach KARATSUBA) zur Multiplikation zweier Polynome p(x) und q(x) vom Grad N Divide Falls N = 1 ist, so berechne das Produkt der beiden Koeffizienten direkt, sonst: Zerlege die Polynome p(x) und q(x): p(x) = p l (x) + p r (x) x N 2, q(x) = q l (x) + q r (x) x N 2 und setze: p m (x) = p l (x) + p r (x), q m (x) = q l (x) + q r (x). Prof. Dr. Dietmar Seipel 11

12 2. Conquer Wende das Verfahren (rekursiv) an, um die folgenden Polynomprodukte zu berechnen: z l (x) = p l (x) q l (x), z r (x) = p r (x) q r (x), z m (x) = p m (x) q m (x). 3. Merge Setze: p(x) q(x) = z l (x) + ( z m (x) z l (x) z r (x) ) x N 2 + z r (x) x N. Prof. Dr. Dietmar Seipel 12

13 Rekursionsformel M(N) = 3 M M(1) = 1. ( N 2 ), für N = 2 k, k N 0 : M(N) = M ( 2 k) = 3 M ( 2 k 1) =... = 3 k M ( 2 0) = 3 k = ( 2 log 3) k = ( 2 k ) log 3 = N log 3 = N 1,58... (log x = Logarithmus zur Basis 2 von x) Verbesserung gegenüber dem naiven Verfahren mit N 2 Multiplikationen. Prof. Dr. Dietmar Seipel 13

14 1.3 Ein Multiplikationsverfahren Multiplikation von zwei Dualzahlen. Beispiel a = 13 = ˆ= 1101 b = 5 = ˆ= Multiplikationsschema ˆ= = 65 Prof. Dr. Dietmar Seipel 14

15 Implementierung int x = a; int y = b; int z = 0; Multiplikation while ( y > 0 ) { if ((y % 2) == 0) { // (*) y = y / 2; x = x + x; } else { y = y - 1; z = z + x; } } Prof. Dr. Dietmar Seipel 15

16 Wert der Variablen zu Beginn eines jeden Durchlaufs durch die while Schleife: x y z Anzahl der Schleifeniterationen Prof. Dr. Dietmar Seipel 16

17 1.3.2 Beweis für die Korrektheit des Verfahrens Wir verwenden eine Schleifeninvariante und zeigen folgende 3 Behauptungen: P = ( y 0 und z + x y = a b ) 1. Behauptung P ist vor Ausführung der while Schleife richtig, d.h. vor erstmaliger Ausführung der if Anweisung (*). 2. Behauptung P bleibt bei einmaliger Ausführung der while Schleife richtig, d.h. gilt die kontrollierende Bedingung (y > 0) der while Schleife und die Bedingung P vor der Ausführung der Anweisung (*), so gilt nach der Ausführung von (*) ebenfalls P. Prof. Dr. Dietmar Seipel 17

18 3. Behauptung Die while Schleife terminiert, d.h. die zu iterierende if Anweisung wird nur endlich oft ausgeführt. Beweise 1. Vor der while Schleife gilt x = a, y = b = 0, z = 0 und folglich z + x y = 0 + a b = a b. 2. Wir nehmen an, es gelte vor der Ausführung von (*): ( y 0 und z + x y = a b ) und y > 0. Ist y gerade, so wird y halbiert und x verdoppelt. Aber es bleibt bei Ausführung von (*) das Produkt x y unverändert, und es gilt nach der Ausführung von (*) immer noch ( y 0 und z + x y = a b ). Prof. Dr. Dietmar Seipel 18

19 Ist y ungerade, so wird y um 1 verringert und z um x erhöht. Also gilt nach der Ausführung von (*): z +x y = (z +x)+x (y 1) = z +x+x y x = z +x y = a b, d.h. die Schleifeninvariante P ist nach wie vor gültig. 3. Jede Ausführung der if Anweisung (*) in der while Schleife verringert den Wert von y um mindestens 1 (denn für y > 0 gilt auch y 2 y 1). Nach höchstens y Iterationen muss also y = 0 werden, und damit die Schleife terminieren. Bei Terminierung des Verfahrens gilt y = 0 und es gilt immer noch die Schleifeninvariante P = ( y 0 und z + x y = a b ). Folglich gilt y = 0 und z = z + x y = a b, d.h. das Produkt von a und b wird korrekt berechnet. Prof. Dr. Dietmar Seipel 19

20 1.4 Aktienkurs Analyse , 4, 3, 3, 1, 2, 3, 1, 4, 1, 4, 3, 0, 1 Eingabereihenfolge: X[1...14], S N 0 Kurs zur Zeit i: S + X[1] X[i 1] Prof. Dr. Dietmar Seipel 20

21 1.4.1 Das Maximum Subarray Problem Maximum Subarray Problem Gegeben sei eine Folge X von N ganzen Zahlen in einem Array. Gesucht ist die maximale Summe aller Elemente in einer zusammenhängenden Teilfolge. Sie wird als maximale Teilsumme bezeichnet, jede solche Folge als maximale Teilfolge. im Beispiel maximale Teilfolge X[7...9], Summe: 6 zum Vergleich: X[5...10], Summe: 4 Prof. Dr. Dietmar Seipel 21

22 1.4.2 Naives Verfahren Berechne für jedes i 1, N sukzessive die Teilsummen X[i] + X[i + 1] X[j] für j = 1,..., N und aktualisiere jeweils das Maximum. Aufwand für jedes i: N i Additionen, N i + 1 Vergleiche Prof. Dr. Dietmar Seipel 22

23 Gesamtaufwand: Additionen: Vergleiche: Summe: A(N) = (N 1) + (N 2) (N N) N (N 1) = N 1 = 2 V (N) = A(N) + N T(N) = A(N) + V (N) = 2 A(N) + N = N (N 1) + N = N 2 Prof. Dr. Dietmar Seipel 23

24 1.4.3 Divide and Conquer Ansatz 1. Divide Teile die Folge X[1],..., X[N] in zwei Teilfolgen X[1],..., X[M] X[M + 1],..., X[N] Dann liegt die maximale Teilfolge entweder ganz in einem der beiden Teile oder sie umfaßt die Trennstelle. Als linkes (rechtes) Randmaximum bezeichnen wir die Summe der Teilfolge X[l],..., X[M] (X[M + 1],..., X[r] ), für die die Summe maximal wird unter allen Teilfolgen, die mit l 0, M beginnen (mit r M + 1, N enden). Prof. Dr. Dietmar Seipel 24

25 l M M+1 r N Die Randmaxima können mit folgendem Aufwand bestimmt werden: links: M 1 + M = 2 M 1 rechts: (N M 1) + N M = 2 (N M) 1 Summe: 2 N 2 Schritte Die Randmaxima seien r l und r r. Falls die maximale Teilfolge den Rand X[M] umfaßt, so ist X[l],..., X[M], X[M + 1],..., X[r] eine maximale Teilfolge mit Teilsumme r l + r r. Prof. Dr. Dietmar Seipel 25

26 2. Conquer Löse Teilprobleme X[1],..., X[M] und X[M + 1],..., X[N] rekursiv. Die Maxima seien s l und s r. 3. Merge Die maximale Teilsumme ergibt sich nun als max_t_sum = max{s l, s r, r l + r r } Prof. Dr. Dietmar Seipel 26

27 Beispiel Die maximale Teilfoge X[7], X[8], X[9] (3, 1, 4) ist eindeutig. M = 7: maximale Teilfolge umfaßt den Rand: l = 7, r = 9 r l = 3, r r = 3 M = 8: maximale Teilfolge umfaßt den Rand: l = 7, r = 9 r l = 2, r r = 4 M = 6: maximale Teilfolge liegt ganz im rechten Teil Prof. Dr. Dietmar Seipel 27

28 Sei nun T(N) die Anzahl der Schritte, die erforderlich ist, um das Divide and Conquer Verfahren für eine Folge X[1],..., X[N] auszuführen. Sei N = 2 k, k N 0, und es werde jeweils in der Mitte geteilt: M = N 2. Rekursionsformel T(N) = 2 T T(1) = 1 ( N 2 ) + 2 N+1 {}}{ 2 N Prof. Dr. Dietmar Seipel 28

29 Folglich gilt: T ( 2 k) = 2 1 T ( 2 k 1) k + 1 = 2 2 T ( 2 k 2) k k + 1 = 2 3 T ( 2 k 3) k k k + 1. = 2 k T (1) + k 2 k+1 + ( 2 k ) }{{} 2 k 1 = (k + 1) 2 k+1 1 Wenn k = log N erhalten wir weiter: T(N) = 2 ((log N) + 1) N 1 4 N log N 1 für N 2 Prof. Dr. Dietmar Seipel 29

30 1.4.4 Das Scan Line Prinzip Ein weiteres algorithmisches Prinzip ist das Scan Line Prinzip : Wir durchlaufen die Eingabe in der durch eine aufsteigend sortierte, lineare Folge von Implikationsstellen vorgegebenen Reihenfolge, in unserem Falle die Positionen 1,..., N der Eingabefolge. Wir führen zugleich eine vom jeweiligen Problem abhängige, dynamische veränderliche, d.h. an jeder Implikationsstelle gegebenenfalls zu korrigierende Information mit. In unserem Falle sind dies die maximale Summe bismax einer Teilfolge im gesamten bisher inspizierten Anfangsstück und das an der Implikationsstelle endende rechte Randmaximum ScanMax des bisher inspizierten Anfangsstücks. Prof. Dr. Dietmar Seipel 30

31 1 bismax ScanMax N a Scanline Das rechte Randmaximum der neuen Folge mit M + 1 Elementen enthält man aus dem rechten Randmaximum der Folge mit M Elementen durch Hinzunahme von a, falls ScanMax alt + a > 0, ansonsten ist die leere Folge das neue rechte Randmaximum. Prof. Dr. Dietmar Seipel 31

32 Implementierung public class Scanline { Scanline public static void main(string[] args) { int X[] = {1, 4, -3, -3, 1, -2, 3, -1, 4, -1, -4, -3, 0, 1}; System.out.println(scanLine(X)); } public static int scanline(int[] X) { // Initialisierung int N = X.length; int scanmax = 0; int bismax = 0; Prof. Dr. Dietmar Seipel 32

33 Scanline // Iteration for (int i = 0; i < N; i++) { // 2 Schritte int a = X[i]; // 2 Schritte } } // Update ScanMax und bismax if (scanmax + a > 0) // 2 Schritte scanmax += a; // 1 Schritt else scanmax = 0; bismax = java.lang.math.max(bismax, scanmax); // 2 Schritte } return bismax; Prof. Dr. Dietmar Seipel 33

34 Dieser Algorithmus benötigt nur linear (in N) viele Durchläufe der for Schleife und bei jedem Durchlauf, d.h. an jeder Implikationsstelle, ist der Aufwand beschränkt durch eine Konstante c N 0 (in unserem Fall z.b. c = 9). Der Gesamtaufwand ist also T(N) = 9 N + 3. Prof. Dr. Dietmar Seipel 34

35 1.5 Komplexität von Algorithmen Der Aufwand oder die Komplexität eines Algorithmus gibt die Anzahl der problemrelevanten Elementaroperationen bei seiner Ausführung an. Dazu gibt man eine Funktion T : N R an, die von der Problemgröße n abhängt. Wie sind in der Regel zufrieden, wenn wir die Größenordnung oder die Wachstumsklasse des Algorithmus bestimmen können. Wachstumsklassen sind Mengen von Funktionen, die für große n etwa gleichen Verlauf aufweisen. Prof. Dr. Dietmar Seipel 35

36 Definition (Größenordnungsmaße O, Ω, Θ) Sei f : N R eine Funktion. (i) O(f) = {g : N R n 0 N, c > 0 : n n 0 : g(n) c f(n)} (ii) Ω(f) = {g : N R n 0 N, c > 0 : n n 0 : g(n) c f(n)} (iii) Θ(f) = O(f) Ω(f) Sprechweisen g ist höchstens mindestens genau von der Größenordnung f, falls g O(f) g Ω(f) g Θ(f) ist. Offensichtlich gilt f O(f), f Ω(f), f Θ(f) sowie O(g) O(f) g O(f) f Ω(g) Ω(f) Ω(g). Wir schreiben oft auch g(n) O(f(n)), u.s.w.... Prof. Dr. Dietmar Seipel 36

37 1.5.1 Verhalten wichtiger Funktionen n n 2 nlog (n) n log (n) Prof. Dr. Dietmar Seipel 37

38 log 2 (n) n n log 2 (n) n n Es gilt: O(log 2 (n)) O(n) O(n log 2 (n)) O(n 2 ) O(2 n ) Prof. Dr. Dietmar Seipel 38

39 Folgerung Seien f, g : N R +. Falls lim n g(n) f(n) = c existiert, so gilt: (i) Falls c = 0 ist, so gilt g O(f) (und f Ω(g)) sowie f O(g) (und g Ω(f)). (ii) Falls c > 0 ist, so gilt g Θ(f) (und f Θ(g)). (iii) Falls c = ist, so gilt f O(g) (und g Ω(f)) sowie g O(f) (und f Ω(g)). Prof. Dr. Dietmar Seipel 39

40 Für Polynome ist nur der Grad ausschlaggebend: f(n) = g(n) = k a i n i, a i R, 0 i k 1, a k R + i=0 l b i n i, b i R, 0 i l 1, b l R + i=0 Dann gilt: f(n) O(g(n)) k l O(f(n)) = O(g(n)) k = l Prof. Dr. Dietmar Seipel 40

41 Beispiel f(n) = 2 n n 3 g(n) = n 3 16 n 2 h(n) = n 2 f(n) O(g(n)), g(n) O(f(n)), f(n) Θ(h(n)) { a 2 n 2 + a 1 n + a 0 a 2 R +, a 1, a 0 R } Θ(h(n)) Prof. Dr. Dietmar Seipel 41

42 1.5.2 Weitere Rechenregeln (i) Sei g(n) O(f(n)) und a, b R und es existiere ein n N 0 mit f(n) 1, für alle n n. Dann gilt a g(n) + b O(f(n)). Für a > 0 gilt: O(a f(n) + b) = O(f(n)). Wegen log 2 (n) = log 2 (b) log b (n) gilt für b > 1 also O(log 2 (n)) = O(log b (n)). (ii) Seien f(n) O(h 1 (n)) und g(n) O(h 2 (n)) und h i (n) 0, für alle n n. Dann gilt f(n) + g(n) O(h 1 (n) + h 2 (n)). (iii) Falls ein n N 0 existiert mit f(n) 0, für alle n n, so gilt auch f(n) g(n) O(h 1 (n) h 2 (n)). Prof. Dr. Dietmar Seipel 42

43 Beweis (i) Wegen g(n) O(f(n)) gibt es n 0 N, c > 0 mit g(n) c f(n), für alle n n 0. Wegen f(n) 1, für alle n n, gilt: für alle n max{n 0, n }. a g(n) + b a c f(n) + b f(n), }{{} (a c+ b ) f(n) Prof. Dr. Dietmar Seipel 43

44 (ii) Wegen f(n) O(h 1 (n)) und g(n) O(h 2 (n)) gibt es n 1 N und c 1 > 0 sowie n 2 N und c 2 > 0 mit Somit gilt: f(n) c 1 h 1 (n), für alle n n 1, g(n) c 2 h 2 (n), für alle n n 2. f(n) + g(n) max{c 1, c 2 } (h 1 (n) + h 2 (n)) }{{} c für alle n max{n 1, n 2, n 1, n }{{ 2}. } n 0 Prof. Dr. Dietmar Seipel 44

45 (iii) Für alle n n gilt f(n) 0 und somit auch Somit gilt: h 1 (n) 1 c 1 f(n) 0, für alle n max{n 1, n }. f(n) g(n) c 1 c }{{} 2 h 1 (n) h 2 (n), für alle n max{n 1, n 2, n }. }{{} c n 0 Prof. Dr. Dietmar Seipel 45

46 1.5.3 Rekursionsgleichungen Satz Es seien a, b 0, c > 1, n = c k, k N + und f(n) beliebig. Dann hat die Gleichung T(1) = b, T(n) = a T ( n c ) + f(n) die Lösung T(n) = b a k + k 1 j=0 a j f ( c k j). Prof. Dr. Dietmar Seipel 46

47 Beweis Beweis durch vollständige Induktion über k. Induktionsanfang, k = 0: T ( n 0) = T(1) = b = b a j=0 a j f ( c 0 j) Induktionsschluß, k k + 1: T ( c k+1) = a T ( c k) + f ( c k 1) I.A. = a b a k + = b a k+1 + k 1 j=0 a j f ( c k j) + f ( c k+1) }{{} a 0 f(ck+1 0 ) k a j f ( c k+1 j) j=0 Prof. Dr. Dietmar Seipel 47

48 Wir interessieren uns nur für zwei spezielle Funktionen f(n): f(n) = d n und f(n) = d Satz Es seien a, b 0, c > 1, n = c k, k N + und d > 0. Dann gilt für die Lösung der Gleichung T(1) = b, T(n) = a T ( n c ) + d n die Abschätzung O (n) a < c T(n) O (n log c (n)) falls a = c O ( n log (a)) c a > c (d.h. log c (a) > 1) Prof. Dr. Dietmar Seipel 48

49 Beweis Wir wenden den obigen Satz für f(n) = d n an: T(n) = b a k + d c k k 1 j=0 ( a c ) j Es gilt für die geometrische Reihe k 1 j=0 ( a c ) j : k 1 j=0 ( a j k 1 = c) j=0 q j = 1 qk 1 q für q = a c 1. Prof. Dr. Dietmar Seipel 49

50 1. a < c : Dann gilt 0 q = a c < 1 und k 1 j=0 ( a c ) j 1 1 q unabhängig von k, d.h. unabhängig von n. Damit gilt T(n) b a k + d c k 1 1 q b c k + d c k 1 ( 1 q = c k b + d ) ( 1 q = n b + d ) O(n). 1 q Prof. Dr. Dietmar Seipel 50

51 2. a = c : Dann gilt und somit k 1 j=0 ( a ) j k 1 = c T(n) = b c k + d c k k j=0 1 = k, = c k (b + d k) = n (b + d log c (n)) O (n log c (n)) Prof. Dr. Dietmar Seipel 51

52 3. a > c : Dann gilt q = a c > 1 und und somit k 1 j=0 ( a c ) j = q k 1 q 1 qk 1 q 1, T(n) b a k + d c k ak c k 1 q 1 = b a k + d a k 1 ( q 1 = a k b + d ) = a log c (n) ( q 1 = n log c (a) b + d ) O q 1 ( b + ( n log c (a)). d ) q 1 Prof. Dr. Dietmar Seipel 52

53 Bemerkung Es gilt: log c ( n log c (a)) = log c (a) log c (n) = log c (n) log c (a) = log c ( a log c (n)) und damit folgt n log c (a) = a log c (n) Prof. Dr. Dietmar Seipel 53

54 Satz Es seien a, b 0, c > 1, n = c k, k N + und d > 0. Dann gilt für die Lösung der Gleichung T(1) = b, T(n) = a T ( n c ) + d die Abschätzung O (log c (n)) falls a = 1 T(n) O ( n log (a)) c falls a 1 (= O(n) für a = c > 1) Prof. Dr. Dietmar Seipel 54

55 Beweis Wir wenden den obigen Satz für f(n) = d an: 1. a = 1 : Dann gilt und somit T(n) = b a k + d k 1 j=0 a j = k 1 j=0 T(n) = b a k + d k k 1 j=0 a j 1 = k, = b 1 k + d k = b + d log c (n) O (log c (n)). Prof. Dr. Dietmar Seipel 55

56 2. a 1 : Dann gilt k 1 j=0 a j = ak 1 a 1, und somit T(n) = b a k + d ak 1 a 1 b a k a + d k a 1 für a > 1 b a k 1 + d 1 a für a < 1 ( ) a log c (n) b + 1 a 1 für a > 1 = b a log c (n) + d 1 a für a < 1 ( ) n log c (a) b + 1 a 1 für a > 1 ( = O n log (a)) c. b n log c (a) + d 1 a für a < 1 Prof. Dr. Dietmar Seipel 56

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen 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

Mehr

Übung Algorithmen und Datenstrukturen

Ü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

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (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

Komplexität von Algorithmen:

Komplexitä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

Mehr

2. Effizienz von Algorithmen

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]

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: 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

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.

Mehr

Ordnen 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)

Ordnen 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

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. 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

Mehr

f 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

f 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

Mehr

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen

Algorithmen 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 zur Vorlesung Berechenbarkeit und Komplexität

Ü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

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

V. Claus, Juli 2005 Einführung in die Informatik II 45

V. 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

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. Dezimal zu Binär Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann

Mehr

1.1 Algorithmen und ihre formalen Eigenschaften

1.1 Algorithmen und ihre formalen Eigenschaften Kapitel 1 Grundlagen 1.1 Algorithmen und ihre formalen Eigenschaften In der Informatik unterscheidet man üblicherweise zwischen Verfahren zur Lösung von Problemen und ihrer Implementation in einer bestimmten

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

3.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 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

Komplexität von Algorithmen

Komplexitä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

Mehr

3.3 Laufzeit von Programmen

3.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,

Mehr

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden

Mehr

Komplexität von Algorithmen

Komplexitä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

Mehr

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines Algorithmus

Mehr

Modul Algorithmik, T-Katalog

Modul Algorithmik, T-Katalog Modul Algorithmik, T-Katalog Sommersemester 2017 Steffen Lange 1/1, Folie 1 2017 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches u Vorlesung Folien im Netz u Übung eine Übung alle 14 Tage

Mehr

Algorithmen und Datenstrukturen 1-1. Seminar -

Algorithmen und Datenstrukturen 1-1. Seminar - Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 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:

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Komplexitä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

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Notation für das asymptotische Verhalten von Funktionen

Notation für das asymptotische Verhalten von Funktionen Vorbemerkungen: Notation für das asymptotische Verhalten von Funktionen 1. Aussagen über die Komplexität von Algorithmen und von Problemen sollen (in der Regel) unabhängig von speziellen Maschinenmodellen

Mehr

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

lim 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)

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

8 Komplexitätstheorie

8 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

Mehr

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Informatik 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 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

Mehr

2 Wachstumsverhalten von Funktionen

2 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Schnelle Multiplikation

Schnelle Multiplikation Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle

Mehr

Kapitel III Ringe und Körper

Kapitel III Ringe und Körper Kapitel III Ringe und Körper 1. Definitionen und Beispiele Definition 117 Eine Algebra A = S,,, 0, 1 mit zwei zweistelligen Operatoren und heißt ein Ring, falls R1. S,, 0 eine abelsche Gruppe mit neutralem

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 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:

Mehr

Informatik I Komplexität von Algorithmen

Informatik 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

Mehr

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität) Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

WS 2009/10. Diskrete Strukturen

WS 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

Mehr

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse

Algorithmen 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...

Mehr

Algorithmen & Datenstrukturen Midterm Test 2

Algorithmen & Datenstrukturen Midterm Test 2 Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Objektorientierte 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 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

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit

Mehr

Kostenmodell. 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) 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

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Informatik I Komplexität von Algorithmen

Informatik 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: 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

Mehr

Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/

Algorithmik Ü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,

Mehr

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Serie 4 2 = 10. ) ist). Dann gilt für alle n n 0

Serie 4 2 = 10. ) ist). Dann gilt für alle n n 0 Serie 4. Aufgabe 336 Punkte) Gegeben seien zwei reelle Zahlenfolgen durch a n : 0 n, n N b n : n n, n N Bestimmen Sie die Grenzwerte a bzw. b der Folgen a n ) n N bzw. b n ) n N. Geben Sie jeweils zu gegebenem

Mehr

Kapitel 6 Elementare Sortieralgorithmen

Kapitel 6 Elementare Sortieralgorithmen Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung GdP12 Slide 1 Grundlagen der Programmierung Vorlesung 12 Sebastian Iwanowski FH Wedel GdP12 Slide 2 Entwurf von Algorithmen Wie klassifiziert man Algorithmen? offensichtlich nicht durch die Unterscheidung

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen.

Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen. Informatik I 1. Kapitel Rainer Schrader Einführung in Algorithmen und Datenstrukturen Zentrum für Angewandte Informatik Köln 16. Juli 008 1 / 1 / 1 Einführung in Algorithmen Einführung in Algorithmen Gliederung

Mehr

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung Organisatorisches Algorithmen und Datenstrukturen Kapitel 3: Divide & Conquer Frank Heitmann heitmann@informatik.uni-hamburg.de 1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G-021. 2 Studie zum

Mehr

Mathematische Rekursion

Mathematische Rekursion Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Vorlesung Datenstrukturen

Vorlesung 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:

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

Numerische Verfahren und Grundlagen der Analysis

Numerische Verfahren und Grundlagen der Analysis Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)

Mehr

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form 3. Polynome 3.1 Definition und Grundlagen Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0,

Mehr

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 Prof. Dr. E. Rahm Wintersemester 2001 / 2002 Universität Leipzig Institut für Informatik http://dbs.uni-leipzig.de Zur Vorlesung allgemein Vorlesungsumfang: 2 + 1 SWS

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 Prof. Dr. E. Rahm Wintersemester 2001 / 2002 Universität Leipzig Institut für Informatik http://dbs.uni-leipzig.de Zur Vorlesung allgemein Vorlesungsumfang: 2 + 1 SWS

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

2 Polynome und rationale Funktionen

2 Polynome und rationale Funktionen Gleichungen spielen auch in der Ingenieurmathematik eine große Rolle. Sie beschreiben zum Beispiel Bedingungen, unter denen Vorgänge ablaufen, Gleichgewichtszustände, Punktmengen. Gleichungen für eine

Mehr

Kapitel 2: Zahlentheoretische Algorithmen Gliederung

Kapitel 2: Zahlentheoretische Algorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger

Mehr

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen. Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise

Mehr

1. Übung Algorithmen I

1. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

8 Interpolation. 8.1 Problemstellung. Gegeben: Diskrete Werte einer Funktion f : R R an n + 1 Stützstellen. x 0 < x 1 <... < x n.

8 Interpolation. 8.1 Problemstellung. Gegeben: Diskrete Werte einer Funktion f : R R an n + 1 Stützstellen. x 0 < x 1 <... < x n. 8 Interpolation 81 Problemstellung Gegeben: Diskrete Werte einer Funktion f : R R an n + 1 Stützstellen x 0 < x 1 < < x n Eingabedaten: (x 0, f 0 ),(x 1, f 1 ),,(x n, f n ) Gegebene Daten (x j, f j ) Analysis

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr