Datenstrukturen und Algorithmen

Größe: px
Ab Seite anzeigen:

Download "Datenstrukturen und Algorithmen"

Transkript

1 Datenstrukturen und Algorithmen Musterlösung zu Hausübungsblatt Daniel Warner 8. Mai 007 Aufgabe 5 Nachfolgend ist der Algorithmus Merge-Sort im Pseudocode dargestellt []. Merge-Sort(A, p, r) 1 if p < r then q (p+r) 3 Merge-Sort(A,p,q) 4 Merge-Sort(A,q + 1,r) 5 Merge(A,p,q,r) Es sei A ein beliebiges Array der Länge n = r p + 1. Der erste rekursive Aufruf von Merge-Sort operiert auf einem Array der Länge q p + 1 = p + r p + 1 = p + r p + 1 = r p = n + 1 = n. Der zweite rekursive Aufruf von Merge-Sort operiert auf einem Array der Länge n (q p + 1) = n n = n. dwarner@uni-paderborn.de

2 Damit ergibt sich, mit dem Wissen über die worst-case-laufzeit von Merge, die folgende Rekurrenzgleichung für die worst-case-laufzeit von Merge-Sort für beliebiges n N, n : T(n) = T ( n ) n + T( ) + cn Es gelte außerdem T(1) = 1. Wir vermuten T(n) dn log n = O(n log n) und beweisen unsere Vermutung durch vollständige Induktion nach n. Dabei ist d R >0 eine geeignete Konstante, die erst im Laufe des Beweises konkret bestimmt wird. Zur Induktionsvoraussetzung: Es sei n und T(n ) dn log n gelte für alle n < n. Zum Induktionsschritt: ( n ) n T(n) = T + T( ) + cn d n n n n log + d log + cn (I.V.) ( n n ) d + log n + cn = dn log n + cn < dn log n cn (n ) dn log 3 4 n + cn = dn (log 3 ) 4 + log n + cn ( = dn log n + c + d log 3 ) n 4 dn log n Die letzte Ungleichung ist erfüllt, falls d c. Damit ist der Induktionsschritt gezeigt. log 4 3 Es fehlt nun noch der Induktionsanfang: Aufgrund der Definition des O-Kalküls genügt es den Induktionsanfang für n = und n = 3 zu zeigen. Für n = erhalten wir ( ) T() = T + T( ) + c = T(1) + c = c +! d log = d, und für n = 3 erhalten wir ( 3 ) 3 T(3) = T + T( ) + 3c = T() + T(1) + 3c = 5c + 3! 3d log 3. Die beiden mit! gekennzeichneten Ungleichungen gelten, falls d c + 1 und d 5c+3 3 log 3, 5c+3 also setzen wir d auf das Maximum von c + 1, 3 log 3 und c. Damit ist der Beweis log 4 3 vollständig, und es gilt T(n) dn log n = O(n log n). Es gilt bekanntlich sogar T(n) = Θ(n log n). Um dies zu beweisen, zeigt man analog mit der Substitutionsmethode, dass auch die untere Schranke T(n) = Ω(n log n) gilt.

3 Aufgabe 6 Wir lösen die durch T(n) = { 3T( n ) + cn, falls n > 1 d, sonst definierte Rekurrenzgleichung durch Anwenden der Iterationsmethode. Dazu setzen wir T(n) iterativ in sich selbst ein und versuchen nach einigen Iterationen eine allgemeine Formel für die k.te Iteration aufzustellen: 1. Iteration T(n) = 3T ) + cn. Iteration = 3 ( 3T ) + c n ) + cn = 3 T ) + 3c n + cn 3. Iteration = 3 ( 3T 3 ) + c n ) + 3c n + cn = 3 3 T 3 ) + 3 c n + 3c n + cn. Nach diesen Iterationsschritten haben wir Anlass zur Behauptung, dass ) k 1 T(n) = 3 k T k + 3 i c n i für alle k N mit k log n gilt. 1 Wir beweisen die Korrektheit der geschlossenen Formel für T(n) durch vollständige Induktion: Der Induktionsanfang entspricht der 1. Iteration. Die Behauptung sei nun korrekt für k 1 N mit k log n. Dann gilt: ) k T(n) = 3 k 1 T (I.V.) k i c n i = 3 k 1( 3T ) n ) k + c k k i c n i = 3 k T ) + 3 k 1 k c n k k i c n i = 3 k T ( k 1 n ) + k 3 i c n i Damit ist auch der Induktionsschritt gezeigt, und mit dem Prinzip der vollständigen Induktion folgt die Behauptung. Die Iteration bricht bei T(1) ab, d.h. wenn n = 1 gilt. Das gilt aber genau dann, wenn k k = log n. Wir formen nun die geschlossene Formel für T(n) unter Verwendung der 1 Wir nehmen ohne Einschränkung an, dass n eine Zweierpotenz ist. 3

4 endlichen geometrischen Reihe für k = log n um: Wir erhalten also insgesamt ) k 1 T(n) = 3 k T k + 3 i c n i log(n) 1 = 3 log n T(1) + 3 i c n i = dn log 3 + cn log(n) 1 ( 3 ) i 3 ) log n = dn log cn( 3 1 = dn log 3 + cn nlog = dn log 3 + cnn log 3 cn = dn log 3 + cn log( 3 )+1 cn = dn log 3 + cn log( 3 )+log cn = dn log 3 + cn log 3 cn = (c + d)n log 3 cn = Θ(n log 3 ) T(n) = Θ(n log 3 ). Wir zeigen nun die Korrektheit des Algorithmus. Es sei n = k. Wir führen Induktion nach k. Der Induktionsanfang k = 0 ist klar: Der Algorithmus multipliziert zwei Bits stets korrekt. Als Induktionsvoraussetzung nehmen wir an, dass der Algorithmus auf allen Integern der Länge k 1 = n korrekt arbeitet. Zum Induktionsschritt: Der Algorithmus erhält als Eingabe zwei n-bit Integer X und Y. Diese werden in einen höherwertigen und einen niederwertigen Teil der Länge jeweils n aufgeteilt, sodass X = n A + B und Y = n C + D. Nach Induktionsvoraussetzung werden die Produkte BD, AC und (A + B)(C + D) korrekt berechnet. Einfaches Nachrechnen zeigt, dass BD + n ((A + B)(C + D) AC BD) + n AC = A + B)( n C + D) = XY gilt, womit auch der Induktionsschritt gezeigt ist. Damit folgt die Korrektheit des Algorithmus. Aufgabe 7a Wir lösen die durch T(n) { 9T( n 3 ) + 9n3, falls n > 1 = c, sonst 4

5 definierte Rekurrenzgleichung durch Anwenden der Iterationsmethode. Dazu setzen wir T(n) iterativ in sich selbst ein und versuchen nach einigen Iterationen eine allgemeine Formel für die k.te Iteration aufzustellen: 1. Iteration T(n) 9T 3 ) + 9n3. Iteration 9 ( 9T ) )3) + 9n 3 = 9 T ) + 9 n 3 + 9n Iteration 9 ( 9T ) + 9 ) 3) + 9 n 3 + 9n = 9 3 T ) + 93 n n 3 + 9n (3 3 ) 3 3. Nach diesen Iterationsschritten haben wir Anlass zur Behauptung, dass ) T(n) 9 k T 3 k + k 9 i n3 33(i 1) i=1 für alle k N mit k log 3 n gilt. Wir beweisen die Korrektheit der geschlossenen Formel für T(n) durch vollständige Induktion: Der Induktionsanfang entspricht der 1. Iteration. Die Behauptung sei nun korrekt für k 1 N mit k log 3 n. Dann gilt: T(n) ) k 1 9 k 1 T (I.V.) 3 k 1 + i=1 9 i n3 33(i 1) 9 k 1( 9T ) ) ) k k 3 k 1 + ) = 9 k T 3 k + 9 k ) k k 1 ) = 9 k T 3 k + k 9 i n3 33(i 1) i=1 i=1 i=1 9 i n3 33(i 1) 9 i n3 33(i 1) Damit ist auch der Induktionsschritt gezeigt, und mit dem Prinzip der vollständigen Induktion folgt die Behauptung. Die Iteration bricht bei T(1) ab, d.h. wenn n = 1 gilt. Das gilt aber genau dann, wenn 3 k k = log 3 n. Wir formen nun die geschlossene Formel für T(n) unter Verwendung der Wir nehmen ohne Einschränkung an, dass n eine Dreierpotenz ist. 5

6 unendlichen geometrischen Reihe für k = log 3 n um: T(n) 9 log 3 n T(1) + log 3 n i=1 log 3 n = cn log n 3 cn + 9n 3 i=1 = cn + 9n = cn + 7 n3 = O(n 3 ) ( 1 3) i 9 i n3 33(i 1) ( ) i 1 Wir erhalten also insgesamt T(n) = O(n 3 ). Aufgabe 7b Die Laufzeit T(n) eines Algorithmus A sei gegeben durch die Rekurrenzgleichung 3 T(n) = { 7T( n ) + n, falls n > 1 1, sonst, und die Laufzeit S(n) eines Algorithmus B sei gegeben durch die Rekurrenzgleichung S(n) = { as( n 4 ) + n, falls n > 1 1, sonst mit a N. Wir zeigen zwei unterschiedliche Herangehensweisen zur Lösung der Aufgabenstellung: Bei der ersten Variante gehen wir elementar vor, bei der zweiten Variante wenden wir das Master-Theorem an. Es zeigt sich im Vergleich der beiden Ansätze deutlich, dass die Verwendung des Master-Theorems einem in dieser Situation viel Arbeit abnimmt (die dafür aber in den Beweis des Master-Theorems investiert wurde). Bei beiden Beweisvarianten benutzen wir das folgende Lemma: Lemma 1. Es seien s 1 : N N und s : N N Funktionen, und es gelte s 1 o(s ). Dann gilt O(s 1 ) o(s ). 3 Dies ist gerade die Rekurrenzgleichung, die sich bei der Laufzeitanalyse des Matrixmultiplikationsalgorithmus von Strassen ergibt. 6

7 Beweis. Nach Voraussetzung gilt Es sei nun f O(s 1 ) beliebig. Dann gilt c > 0 n 0 N n n 0 : s 1 (n) c s (n). c 1 > 0 n 1 N n n 1 : f(n) c 1 s 1 (n). Es sei c > 0 beliebig. Setze c = c c 1. Dann gilt c > 0, und es folgt n 0 N n n 0 : c 1 s 1 (n) c 1 c s (n) = cs (n). Mit f O(s 1 ) und n := max(n 0, n 1 ) erhalten wir schließlich und damit f o(s ). n n : f(n) c 1 s 1 (n) cs (n) Anschaulich: Wenn die Funktion s 1 (asymptotisch) langsamer als s wächst, dann wächst jede Funktion f : N N, die höchstens so schnell wächst wie s 1, langsamer als s. Elementare Lösung Mit der Iterationsmethode und vollständiger Induktion erhalten wir für alle k log n und ) ) k 1 ( 7 i T(n) = 7T + n = 7 k T k + n 4) ) ) k 1 ( a i S(n) = as + n = a k S 4 4 k + n 16) für alle k log 4 n. Die Iteration bricht jeweils bei T(1) ab, d.h. wenn n n = 1 bzw. = 1 gilt. Das gilt k 4 k aber genau dann, wenn k = log n bzw. k = log 4 n. Unter Verwendung der endlichen geometrischen Reihe lassen sich T(n) und S(n) (für a 16) in eine geschlossene Form umformen: T(n) = 7 3 nlog n = Θ(n log 7 ) S(n) = a a 16 nlog 4 a a n 16 Um die asymptotische Laufzeit des Algorithmus B zu bestimmen, unterscheiden wir drei Fälle: 7

8 a<16: mit c 1 = Wir erhalten a a 16 0 und c = a Wegen lim n n n log 7 = lim n 1 n log 7 4 und wir erhalten S(n) = c 1 n log 4 a + c n 0. Daraus folgt Θ(n ) O(n ) S(n) = Θ(n ). = 0 gilt n o(n log 7 ). Mit Lemma 1 folgt o(n log 7 ), (Lemma 1) S(n) = o(n log 7 ), d.h. S(n) wächst asymptotisch langsamer als T(n) = Θ(n log 7 ). 4 Mit anderen Worten: Der Algorithmus B ist asymptotisch schneller als der Algorithmus A. a=16: Wir erhalten durch Einsetzen von a = 16 und k = log 4 n in die geschlossene Form von S(n): S(n) = 16 log 4 n + n log 4 n = n log n log 4 n = n + n log 4 n = Θ(n log n) Wegen lim n n log n n log 7 = 0 gilt n log n o(n log 7 ). Mit Lemma 1 folgt und wir erhalten Θ(n log n) O(n log n) S(n) = o(n log 7 ), o(n log 7 ), (Lemma 1) d.h. S(n) wächst asymptotisch langsamer als T(n) = Θ(n log 7 ). Mit anderen Worten: Der Algorithmus B ist asymptotisch schneller als der Algorithmus A. a>16: mit c 1 = Wir erhalten a a 16 1 und c = a S(n) = c 1 n log 4 a + c n 0. Daraus folgt S(n) = Θ(n log 4 a ). Es soll nun der größte Wert von a N bestimmt werden, für den der Algorithmus B asymptotisch schneller als der Algorithmus A ist. Mit den beiden bereits behandelten 4 Hier fließt ein, dass stets o(f) Ω(f) = gilt. 8

9 Fällen wissen wir, dass a 16 gelten muss. Weiterhin gilt n log 4 a = o(n log 7 ) n log 4 a lim n n log 7 = 0 lim n nlog 4 a log 7 = 0 log 4 a log 7 < 0 1 log a < log 7 log a < log 7 log a < log 7 = log 49 a < 49 Wir erhalten also, zusammen mit Lemma 1, dass O(n log 4 a ) o(n log 7 ) genau dann gilt, wenn a < 49. Somit ist der größte ganzzahlige Wert von a, für den S(n) asymptotisch langsamer wächst als T(n) = Θ(n log 7 ), gerade a = 48. Mit anderen Worten: Der größte ganzzahlige Wert von a, für den der Algorithmus B asymptotisch schneller ist als der Algorithmus A, ist a = 48. Verwendung des Master Theorems Die drei untersuchten Fälle a < 16, a = 16 und a > 16 entsprechen gerade genau den drei Fällen des Master-Theorems (vgl. [], S. 73), das wir nun statt der Iterationsmethode anwenden, um die Rekurrenzgleichungen T(n) und S(n) zu lösen. Offensichtlich gilt n = Ω(n log (7) ɛ 7 ) mit ɛ := log 4 > 0. Mit dem Master-Theorem erhalten wir sofort T(n) = Θ(n log 7 ). a<16: Es gilt n = Ω(n log 4 (a)+ɛ ) mit ɛ := log 4 16 a > 0. Des Weiteren gilt a 4 ) cn für fast alle n N und eine Konstante 0 < c < 1. Nach dem Master-Theorem gilt nun S(n) = Θ(n ). Genau wie bei der elementaren Lösung begründet man nun S(n) = o(n log 7 ). a=16: Es gilt offensichtlich n = Θ(n log 4 a ). Mit dem Master-Theorem folgt S(n) = Θ(n log n). Genau wie bei der elementaren Lösung zeigt man nun S(n) = o(n log 7 ). a>16: Es gilt n = Ω(n log 4 (a) ɛ a ) mit ɛ := log 4 16 > 0. Mit dem Master-Theorem folgt S(n) = Θ(n log 4 a ). Wie bei der elementaren Lösung beweist man nun, dass der größte ganzzahlige Wert von a, für den der Algorithmus B asymptotisch schneller ist als der Algorithmus A, gerade a = 48 ist. 9

10 Aufgabe 8 Wir verfolgen den folgenden rekursiven Ansatz, um n Scheiben von einem Startstapel auf einen Zielstapel unter Zuhilfenahme eines Hilfsstapels zu bewegen: 1. Bewege die n 1 kleinsten Scheiben vom Startstapel auf den Hilfsstapel.. Bewege die größte der n Scheiben vom Startstapel auf den Zielstapel. 3. Bewege die n 1 kleinsten Scheiben vom Hilfsstapel auf den Zielstapel. Wir gehen zunächst davon aus, dass dieser Ansatz immer eine korrekte Lösung liefert und analysieren die Komplexität. Es sei T(n) die minimale Anzahl Bewegungen, die notwendig sind, um n Scheiben von einem Stapel auf einen anderen Stapel (unter den vorgegebenen Regeln) zu transportieren. Dann benötigt Schritt 1 T(n 1) Bewegungen, Schritt eine Bewegung und Schritt 3 wiederum T(n 1) Bewegungen. Folglich können n Scheiben in (höchstens) T(n 1) + 1 Schritten bewegt werden, d.h. es gilt T(n) T(n 1) + 1 für n > 0. Damit sind T(n 1) + 1 Bewegungen hinreichend zur Lösung; wir müssen noch argumentieren, dass diese Anzahl Bewegungen auch notwendig ist [4]: Irgendwann muss die größte der n Scheiben auf den Zielstapel bewegt werden. Zu dem Zeitpunkt müssen die n 1 kleinsten Scheiben bereits auf einen einzigen anderen Stapel bewegt worden sein. Dies benötigt mindestens T(n 1) Bewegungen. Wir könnten die größte Scheibe mehr als einmal bewegen, aber nachdem wir die größte Scheibe das letzte mal bewegt haben, müssen wir die n 1 kleinsten Scheiben von ihrem Stapel auf die größte Scheibe transportieren. Dies benötigt wiederum mindestens T(n 1) Bewegungen. Also gilt T(n) T(n 1) + 1, und wir erhalten insgesamt T(n) = { T(n 1) + 1, falls n > 0 0, falls n = 0. Mit vollständiger Induktion zeigt man leicht, dass T(n) = n 1 für alle n 0 gilt. 5 Wir geben mit diesen Vorüberlegungen nun einen Algorithmus an, der das Problem Türme von Hanoi korrekt löst: Hanoi(n) 1 Hanoi-Recursive(n, A, B, C) 5 Interessanterweise ist n 1 gerade die n.te Mersenne sche Zahl. 10

11 Hanoi-Recursive(i, start, hilf, ziel) 1 if i > 0 then Hanoi-Recursive(i 1, start, ziel, hilf ) 3 Bewege die oberste Scheibe von start nach ziel. 4 Hanoi-Recursive(i 1, hilf, start, ziel) Mit dem Vorstehenden ist die Laufzeit des Algorithmus Hanoi Θ ). Zur Korrektheit: Wir zeigen per vollständiger Induktion nach n N 0, dass der Aufruf Hanoi-Recursive(n, a, b, c) eine korrekte Bewegungsfolge liefert, wann immer n Scheiben auf einem beliebigen Startstapel a liegen und zu einem beliebigen Zielstapel c a unter Zuhilfenahme eines Hilfsstapels b (b a und b c) transportiert werden sollen, wobei auf b und c, sofern sie nicht leer sind, nur Scheiben liegen, die größer sind als die größte der zu transportierenden n Scheiben. Für n = 0 ist die Aussage trivial und damit der Induktionsanfang erfüllt. Im Induktionsschritt schließen wir von n 1 auf n > 0. Nach Induktionsvoraussetzung bewegt der Aufruf Hanoi-Recursive(n 1, a, c, b) die oberen n 1 Scheiben korrekt von a nach b, denn die Rollen von b und c als Hilfs- bzw. Zielstapel können vertauscht werden. Die größte der n zu transportierenden Scheiben wird daraufhin auf den Stapel c transportiert, was zulässig ist, da c nach Voraussetzung entweder leer ist, oder auf c nur Scheiben liegen, die größer sind als die größte der n zu transportierenden Scheiben. Nun liegen auf dem Stapel a, sofern er nicht leer ist, nur Scheiben, die größer sind als die größte der n 1 nun zu verschiebenden Scheiben. Entsprechendes gilt für den Stapel c. Der anschließende Aufruf Hanoi-Recursive(n 1, b, a, c) bewegt also nach Induktionsvoraussetzung die n 1 obersten Scheiben korrekt vom Stapel b auf den Stapel c. Damit sind alle n Scheiben vom Startstapel a korrekt auf den Zielstapel c transportiert worden. Es folgt unmittelbar die Korrektheit des Algorithmus Hanoi. Die Türme von Hanoi sind ein Beispiel für ein praktisch unlösbares Problem: Die Anzahl Bewegungen, die notwendig und hinreichend ist, um n > 0 Scheiben von einem Stapel auf einen anderen Stapel zu bewegen ist T(n) = n 1; wir haben gesehen, dass sich dieses Ergebnis nicht verbessern lässt. Diese Anzahl ist aber exponentiell in der Anzahl n der Scheiben. Wie in Tabelle 1 ersichtlich, wird die Anzahl der Bewegungen selbst für kleine n astronomisch. Die in der Tabelle 1 angegebene Abschätzung für die benötigte Zeit, ergibt sich unter der Annahme, dass ein Mönch eine Scheibe pro Sekunde verschieben kann und bis zur Vollendung der Aufgabe ohne Unterbrechung arbeitet. Zieht man in Betracht, dass unser Universum etwa 13,5 Milliarden Jahre alt ist, so besteht also zunächst kein Anlass zu Weltuntergangsstimmung. 11

12 Anzahl Scheiben Minimale Anzahl Bewegungen Benötigte Zeit Sekunden Minuten Tage Jahre Jahrhunderte Milliarden Jahre Milliarden Jahre Tabelle 1: Praktische Unlösbarkeit der Türme von Hanoi [7] Aufgabe 9 Definitionen und Problemstellung Definition. Es seien p 1, p R d Punkte. Wir sagen, dass der Punkt p 1 = (x 1,..., x d ) den Punkt p = (x 1,..., x d ) dominiert, falls x k x k für alle k { 1,,..., d }. Im Falle des R heißt das für p 1 = (x 1, y 1 ) und p = (x, y ), dass x 1 x und y 1 y gilt. Es sei P R d eine Menge von Punkten. Ein Punkt m P heißt maximal (in P), falls er von keinem anderen Punkt aus P dominiert wird. Wir nennen die Menge M P der maximalen Punkten in P die Pareto-Menge von P. Abbildung 1 verdeutlicht die Begriffe Dominanz und Maximalität. Der Punkt p wird genau dann von einem Punkt p 1 dominiert, falls sich dieser rechts oberhalb (durch Schraffierung hervorgehoben) von p befindet. In der Abbildung wird p also von p 1 dominiert. Würde sich kein Punkt in der schraffierten Ebene befinden, so wäre p maximal. In diesem Beispiel ist p 1 ein maximaler Punkt, p hingegen nicht. y p 1 =(x 1,y 1 ) p =(x,y ) x Abbildung 1: Dominanz und Maximalität im R Gegeben sei nun eine endliche Menge P R. Wir wollen die Pareto-Menge von P berechnen. Dieses Problem ist auch bekannt als Maximum Vector Problem. 1

13 Algorithmus Der folgende Algorithmus ist ein Spezialfall des in [5, 6] vorgestellten Algorithmus, der in Zeit O(n(log n) d ) + O(n log n) die maximalen Punkte einer vorgegebenen endlichen Menge P R d berechnet. Im Falle des R ist die worst-case-laufzeit O(n log n) optimal. Beim Beweis der Optimalität argumentiert man über untere Schranken für bestimmte Sortierverfahren. Maximal-Points(P) Eingabe: Array P von Punkten mit x-koordinate P[k][1] und y-koordinate P[k][] Ausgabe: Die Pareto-Menge von P als Array 1 Sortiere P primär nach x-koordinate und sekundär nach y-koordinate, sodass P[1][1] P[][1]... P[length[P]][1] und P[j][] P[j + 1][] P[j + m][], falls P[i][1] = P[i + 1][1] für i { j, j + 1,..., j + m 1 }. return Maximal-Points-Recursive(P) Maximal-Points-Recursive(P) 1 if length[p] = 1 then return P 3 else P l P[1.. n ] 4 P r P[ n length[p]] 5 M l Maximal-Points-Recursive(P l ) 6 M r Maximal-Points-Recursive(P r ) 7 M Merge-Maximal-Points(M l, M r ) 8 return M Merge-Maximal-Points(M l, M r ) 1 n l length[m l ] n r length[m r ] 3 y max M r [1][] 4 for i to n r 5 do if M r [i][] > y max 6 then y max M r [i][] 7 M newarray(0) 8 for i 1 to n l 9 do if M l [i][] > y max 10 then length[m] length[m] M[length[M]] M l [i] 1 length[m] length[m] + n r 13 M[length[M] n r length[m]] M r 14 return M Erläuterung und Korrektheit Der Algorithmus Maximal-Points wird auf einer durch ein Array kodierten Punktmenge P R aufgerufen (vgl. Abbildung ). Diese wird primär nach der x-koordinate und sekundär nach der y-koordinate aufsteigend sortiert. Der 13

14 Sortiervorgang in Zeile 1 des Algorithmus Maximal-Points kann z.b. mit einem stabilen Sortieralgorithmus wie Merge-Sort durchgeführt werden, indem durch zwei hintereinander ausgeführte Aufrufe von Merge-Sort die Elemente des Arrays P zunächst nach der y-koordinate und dann nach der x-koordinate sortiert werden. Abbildung : Eine Punktmenge P R Nach dem Sortieren wird im Algorithmus Maximal-Points-Recursive rekursiv auf der Menge P operiert. Die Menge der Punkte P wird zunächst in eine linke Teilmenge P l und eine rechte Teilmenge P r annähernd gleicher Größe geteilt (vgl. Abbildung 3). P l P r Abbildung 3: Aufteilung der Punktmenge P in zwei Teilmengen P l und P r Für die beiden Mengen P l und P r werden rekursiv jeweils die Mengen M l und M r der maximalen Punkte berechnet. Die maximalen Punkte von P l bzw. P r sind in Abbildung 4 durch Linien miteinander verbunden. P l P r Abbildung 4: Rekursive Berechnung der maximalen Punktmengen M l und M r Anschließend werden die beiden Paretomengen M l und M r mit dem Algorithmus Merge-Maximal-Points zusammengefügt, und das Ergebnis M wird zurückgegeben. Dies ist offensichtlich ein Divide-&-Conquer-Ansatz. Der Rekursionsabbruch findet bei einer Menge, die aus genau einem Punkt besteht, statt. Die Menge der maximalen Punkte besteht dann trivialerweise genau aus diesem Punkt. Die meiste Arbeit steckt im Zusammenfügen der beiden maximalen Mengen M l und M r zu einer Menge M, die maximal für P sein soll: 14

15 Zunächst beobachtet man, dass kein Punkt p r = (x r, y r ) P r von einem Punkt p l = (x l, y l ) P l dominiert werden kann: Da das Array P primär nach x-koordinate und sekundär nach y-koordinate (aufsteigend) sortiert ist, gilt x l x r, und im Falle x l = x r gilt y l y r. Folglich wird p r nicht von p l dominiert. 6 Es kann aber sehr wohl Punkte in P r geben, die Punkte aus P l dominieren. Dabei genügt es, die Punkte in M l zu bestimmen, die von Punkten aus M r dominiert werden. Es sei m l = (x l, y l ) M l beliebig. Für alle Punkte m r = (x r, y r ) M r gilt dann x r x l. Der Punkt m l ist also in P genau dann maximal, wenn es keinen Punkt m r = (x r, y r ) M r mit y r y l gibt. Es genügt daher den Wert einer größten y-koordinate y max bzgl. aller Punkte aus M r zu berechnen und dann zu bestimmen, welche Punkte aus M l eine größere y-koordinate als y max besitzen. Genau diese Punkte aus M l sind maximal in P. Es gibt auch eine grafische Interpretation: Man zieht eine zur x-achse parallele Gerade durch die Punkte in M r mit der größten y-koordinate (vgl. Abbildung 5). P l P r Abbildung 5: Berechnung von y max Alle Punkte in M l, die sich auf oder unterhalb dieser Geraden befinden, sind nicht maximal in P. Die Punkte in M l oberhalb dieser Geraden sind hingegen maximal in P. Die for-schleife in Zeile 8 des Algorithmus Merge-Maximal-Points übernimmt gerade die Punkte aus M l, die maximal in P sind, in das Array M (vgl. Abbildung 6). P l P r Abbildung 6: Elimination von Punkten in M l, die von Punkten in M r dominiert werden Wir hatten zuvor beobachtet, dass kein Punkt aus P r von einem Punkt aus P l dominiert werden kann, d.h. alle Punkte in P r sind maximal in P. Daher werden diese in Zeile 13 des Algorithmus Merge-Maximal-Points am Ende des Arrays M angefügt. Insgesamt erhalten wir die Pareto-Menge M von P (vgl. Abbildung 7). Man bemerke außerdem, dass die Menge M wiederum primär nach x-koordinate und sekundär nach y-koordinate (aufsteigend) sortiert ist. 6 Für die Argumentation haben wir an dieser Stelle implizit vorausgesetzt, dass die Punkte im Array P paarweise verschieden sind. 15

16 Abbildung 7: Die Pareto-Menge M von P Laufzeitanalyse Es bezeichne T(n) die worst-case-laufzeit des Algorithmus Maximal- Points-Recursive. Dann gilt T(n) = T ) + cn = O(n log n) Die worst-case-laufzeit lässt sich noch verbessern, indem zur Verwaltung der maximalen Punkte ein balancierter binärer Suchbaum verwendet wird. Man erhält dann die Rekurrenzgleichung T(n) = T ) + c log n = O(n). Die worst-case-laufzeit des Algorithmus Maximal-Points ist aber in beiden Fällen O(n log n) aufgrund des vorab durchgeführten Sortiervorgangs. Anwendungen Das Maximum Vector Problem tritt in vielen unterschiedlichen Kontexten auf und ist als solches daher tiefgehend untersucht worden. Es hat neue Bedeutung durch sogenannte Skyline Queries (erstmals eingeführt in [1]) für relationale Datenbanken gewonnen. Bei Skyline Queries werden die maximalen Tupel über einer Menge von Tupeln gesucht. Bestimmte Spalten, deren zugrundeliegenden Domänen linear geordnet sind, werden als Skyline-Kriterien designiert. Dominanz wird dann bzgl. dieser Kriterien definiert. Die nicht-dominierten, d.h. maximalen Tupel formen dann die Skyline-Menge und somit das Ergebnis einer Skyline Query. Beispiel: Name Sterne Distanz Preis Aga ** Fol * Kaz * Neo *** Tor *** Uma ** Tabelle : Die Tabelle Hotel [3] Die folgende Skyline-Abfrage auf einer Tabelle Hotel, die die Spalten Name, Adresse, Sterne (Qualitätsmaß), Distanz (Distanz zum Strand) und Preis besitzt, fragt nach den Hotels, für die sich kein Hotel finden lässt, das zugleich mindestens genauso viele Sterne besitzt, mindestens genauso nah am Strand ist und mindestens genauso günstig ist: 16

17 SELECT Name, Adresse FROM Hotel SKYLINE OF Sterne MAX, Distanz MIN, Preis MIN; Das Resultat der Abfrage ist in der Tabelle fett hervorgehoben. Man kann die Daten aus Tabelle als Punkte im dreidimensionalen Raum visualisieren. Die Aufgabe besteht dann darin die maximalen Punkte zu bestimmen. Das entspricht gerade der Ergebnismenge der obigen Skyline-Abfrage. Aufgabe 10 Es sei G = (V, E) ein ungerichteter Graph mit V = { v 1,..., v n }. Gegeben sei weiterhin die Adjazenzmatrix A = (a ik ) { 0, 1 } n n von G, sodass gilt a ik = 1 { v i, v k } E Es sei r 1 beliebig. Setze A (r) := A r und sei A (r) = (a (r) ik ). Wir behaupten, dass dann die Anzahl der Wege der Länge (genau) r vom Knoten v i zum Knoten v k in G a (r) ik angibt. Dazu führen wir Induktion nach r. Der Induktionsanfang für r = 1 ist klar. Es sei nun r > 1 und die Behauptung korrekt für r 1. Seien i, k { 1,..., n }. Wir wollen die Anzahl der Wege der Länge r vom Knoten v i zum Knoten v k in G ermitteln. Dazu überlegt man sich, dass sich ein Weg der Länge r aus einem Weg der Länge r 1 und einer anschließenden Kante zusammensetzt. Es genügt also alle Kanten { v j, v k } E, die zum Knoten v k inzident sind, zu betrachten und die Anzahl der Wege von v i nach v j der Länge r 1 jeweils aufzusummieren, d.h. die Anzahl der Wege von v i nach v k der Länge r ist gegeben durch { v j,v k } E a (r 1) ij = n j=1 a (r 1) ij a jk = (A (r 1) A) ik = (A (r) ) ik. Damit ist auch der Induktionsschritt gezeigt und die Behauptung folgt mit dem Prinzip der vollständigen Induktion. Berücksichtigt man nun, dass Dreiecke in G Kreise der Länge 3, also Wege der Länge 3 mit gleichem Start- und Endknoten sind, so genügt es im Wesentlichen die Spur der Matrix D := A 3, d.h. die Summe der Diagonaleinträge von D zu berechnen. Da es innerhalb eines Dreiecks genau 6 Kreise der Länge 3 gibt, muss der so berechnete Wert anschließend noch durch 6 dividiert werden, um die Anzahl der Dreiecke in G zu bestimmen. Der nachfolgende Algorithmus Count-Triangles führt die beschriebene Idee aus. 17

18 Count-Triangles(A) Eingabe: n n-adjazenzmatrix kodiert als zweidimensionales Array A 1 D newarray(rows[a], rows[a]) D Strassen-Matrix-Multiplication(A, A) 3 D Strassen-Matrix-Multiplication(D, A) 4 s 0 5 for i 1 to rows[d] 6 do s s + D[i][i] 7 return s 6 Die Korrektheit des Algorithmus folgt mit den vorhergehenden Überlegungen. Die Laufzeit ist Θ(n log 7 ) wenn der Algorithmus von Strassen zur Matrixmultiplikation verwendet wird. Literatur [1] Börzsönyi, S. ; Kossmann, D. ; Stocker, K.: The Skyline Operator. In: 17th International Conference on Data Engineering (ICDE 01). Washington - Brussels - Tokyo : IEEE, April 001, S [] Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford: Introduction to Algorithms. Second Edition. MIT Press and McGraw-Hill Book Company, 001 [3] Godfrey, Parke ; Shipley, Ryan ; Gryz, Jarek: Algorithms and analyses for maximal vector computation. In: VLDB J 16 (007), Nr. 1, S. 5 8 [4] Graham, Ronald L. ; Knuth, Donald E. ; Patashnik, Oren: Concrete Mathematics. Second Edition. Reading, Massachusetts : Addison-Wesley, 1994 [5] Kung, H. T. ; Luccio, Fabrizio ; Preparata, Franco P.: On Finding the Maxima of a Set of Vectors. In: Journal of the ACM (1975), Nr. 4, S [6] Preparata, F. P. ; Shamos, M. I.: Computational Geometry: an Introduction. Berlin : Springer, 1985 [7] Wikipedia. Türme von Hanoi. URL: BCrme_von_Hanoi

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017 2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

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

Mehr

Induktion und Rekursion

Induktion und Rekursion Induktion und Rekursion Induktion und Rekursion Sommersemester 2018 Ronja Düffel 16. März 2018 Induktion und Rekursion > Mathematische Beweistechniken > Vollständige Induktion Der kleine Gauß Induktion

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

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. Divide & Conquer Strategie Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in

Mehr

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind. Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

Algorithmen I - Tutorium 28 Nr. 2

Algorithmen 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

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele

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

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt U N S A R I V E R S A V I E I T A S N I S S Grundzüge von Algorithmen und Datenstrukturen, WS /6: Lösungshinweise zum 3. Übungsblatt Christian Hoffmann, Fabian Bendun Aufgabe 3. (a) Sei j i + = n die Größe

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

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

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

Übung Algorithmen und Datenstrukturen

Ü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

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Präsenzübung Musterlösung Dienstag, 28.05.2013 Aufgabe 1 (Allgemeine Fragen [20 Punkte]) 1. Tragen Sie in der folgenden Tabelle die Best-, Average- und Worst-Case-

Mehr

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4) Datenstrukturen und Algorithmen Vorlesung 3: (K4) 1 e für rekursive Algorithmen Prof. Dr. Erika Ábrahám 2 Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/

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

2. Klausur Datenstrukturen und Algorithmen SS 2014

2. Klausur Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder 2. Klausur Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

Mehr

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen)

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen) Algorithmen und Datenstrukturen Kapitel 2: und Laufzeitanalyse rekursiver Algorithmen (mittels ) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen Christian Rieck, Arne Schmidt 22.11.2018 Heute 12 Breiten-

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an. 2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert

Mehr

Übung zur Vorlesung Diskrete Strukturen I

Übung zur Vorlesung Diskrete Strukturen I Technische Universität München WS 00/0 Institut für Informatik Aufgabenblatt 10 Prof. Dr. J. Csirik 7. Januar 00 randt & Stein Übung zur Vorlesung Diskrete Strukturen I Abgabetermin: Tutorübungen am 16.

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

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

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

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

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen. Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen

Mehr

3.3 Optimale binäre Suchbäume

3.3 Optimale binäre Suchbäume 3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum

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

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

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n

Mehr

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Präsenzübung Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Dienstag, 28. Mai 2013 Nachname: Vorname: Matrikelnummer: Studiengang:

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Untere Schranken für Sortieren Sortieren mit linearem Aufwand Mediane und Ranggrössen 2 Wie schnell können wir sortieren?

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

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen

Mehr

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen)

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen) Algorithmen und Datenstrukturen Kapitel 2: und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7. Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I 9. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 13.01. & 15.01.2014 Aufgabe Q Gegeben sei ein Fluss-Netzwerk mit Digraph D = (V, A), Knotenkapazitäten c(u, v) 0, Quelle s und Senke t. Kann sich der

Mehr

Induktion und Rekursion

Induktion und Rekursion Mathematische Beweistechniken Vorkurs Informatik SoSe13 10. April 013 Mathematische Beweistechniken Ziel Mathematische Beweistechniken Ziel beweise, dass eine Aussage A(n) für alle n N gilt. Beispiel Für

Mehr

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Abschätzung für die Rekursion von SELECT Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Wir nehmen erst einmal an, dass eine Konstante d existiert,

Mehr

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 Algorithmen und Datenstrukturen Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 christian.komusiewicz@uni-jena.de Friedrich-Schiller-Universität Jena Institut für Informatik http://users.fmi.uni-jena.de/

Mehr

Präsenzübung Datenstrukturen und Algorithmen SS 2014

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

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

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren . Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 07..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

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

Mehr

3.2. Divide-and-Conquer-Methoden

3.2. Divide-and-Conquer-Methoden LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch

Mehr

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.

Mehr

Übungen zu Algorithmentechnik WS 09/10

Übungen zu Algorithmentechnik WS 09/10 Übungen zu Algorithmentechnik WS 09/10 1. Kurzsitzung Thomas Pajor 22. Oktober 2009 1/ 25 Eure Übungsleiter Tanja Hartmann t.hartmann@kit.edu Raum 306, Gebäude 50.34 Thomas Pajor pajor@kit.edu Raum 322,

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1} 1. Berechne für jeden Knoten i in BFS-Art eine Liste S i von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt: (i) S i < n 2 + 1 und Si enthält alle von i aus erreichbaren Knoten (ii) S i = n

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

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

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] Heapsort 211 Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

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

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren Algorithmen und Datenstrukturen 74 3 Rekursionen Vor allem bei rekursiven Algorithmen besitzt die Laufzeitfunktion eine naheliegende rekursive Formulierung, d.h. die Laufzeitfunktion ist konstant für den

Mehr

4 Rekursionen. 4.1 Erstes Beispiel

4 Rekursionen. 4.1 Erstes Beispiel 4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während

Mehr

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

Praktische 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

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Ü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

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

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

Übung Algorithmen und Datenstrukturen

Ü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

Mehr

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz Matrikelnummer: Fakultät Studiengang: Jahrgang / Kurs : Technik Angewandte Informatik 01 B/C/K ÜBUNGSKLAUSUR Studienhalbjahr:. Semester Datum: 0. Juli 01 Bearbeitungszeit: 90 Minuten Modul: TINF100.1 Dozent:

Mehr

Grundlagen der Mathematik

Grundlagen der Mathematik Universität Hamburg Winter 016/17 Fachbereich Mathematik Janko Latschev Lösungsskizzen 6 Grundlagen der Mathematik Präsenzaufgaben (P9) Die Ordnung der natürlichen Zahlen I Wir hatten in der Vorlesung

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

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

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt.

INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt. Aufgabe 1 INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt. QUICK-SORT: Hängt davon ab ob PARTITION stabil ist. MERGE-SORT: Ja, Splitten, sowie Mergen ist stabil.

Mehr

1 Divide-and-Conquer-Algorithmen

1 Divide-and-Conquer-Algorithmen 1 Divide-and-Conquer-Algorithmen 1.1 Multiplikation ganzer Zahlen Wir multiplizieren zwei ganze Zahlen x und y, die in Binärdarstellung gegeben sind. Der Einfachheit halber nehmen wir an, die beiden Zahlen

Mehr

Klausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Klausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Klausur Informatik 2: Algorithmen und Datenstrukturen Donnerstag, 9. März 21, 2017, 9:00 bis 12.00 Uhr Name:.....................................................................

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt

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

Technische Universität München SoSe 2015 Institut für Informatik I Mai 2015 Dr. Tobias Lasser. Aufgabe 1 Rechnen mit Landau-Symbolen

Technische Universität München SoSe 2015 Institut für Informatik I Mai 2015 Dr. Tobias Lasser. Aufgabe 1 Rechnen mit Landau-Symbolen Technische Universität München SoSe 2015 Institut für Informatik I-16 27. Mai 2015 Dr. Tobias Lasser Lösungsvorschläge zur Musterklausur zu Algorithmen und Datenstrukturen Aufgabe 1 Rechnen mit Landau-Symbolen

Mehr

Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 3 Gesamtübersicht Organisatorisches; Einführung Algorithmenanalyse:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen

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

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Kurs 1663 Datenstrukturen Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Susanne Albers Das Maximum-Subarray Problem Das Maximum-Subarray Problem: Gegeben: Folge

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

2.1. Konvexe Hülle in 2D

2.1. Konvexe Hülle in 2D Wir wollen die konvexe Hülle einer Menge von Punkten P = {p 1,..., p n } in der Ebene R 2 bestimmen. y y x x Def. 21: Eine Teilmenge S der Ebene ist konvex gdw für jedes Paar das Liniensegment pq in S

Mehr

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2 Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen

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