1. Klausur Datenstrukturen und Algorithmen SS 2014

Ähnliche Dokumente
2. Präsenzübung Datenstrukturen und Algorithmen SS 2014

2. Klausur Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Zweite Klausur Datenstrukturen und Algorithmen SS 2015

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

Der Rekursionsbaum hat

Lösung: Lösung - Klausur

Tutoraufgabe 1 (Floyd-Warshall):

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Tutoraufgabe 1 (SCC):

Klausur Algorithmen und Datenstrukturen

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

DAP2-Klausur

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmentheorie

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen (SS 2013)

Klausur Algorithmen und Datenstrukturen

Klausur Datenstrukturen und Algorithmen SoSe 2012

a) Geben Sie für die folgenden Paare von Mengen jeweils die Teilmengenbeziehung mit Hilfe der Symbole, und = an. lässt sich wie folgt umformen:

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen

Informatik I - Datenstrukturen und Algorithmen

Klausur Algorithmen und Datenstrukturen

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

DAP2 Probeklausur. Matrikelnummer Vorname Nachname. Datum: 24. Juli C. Sohler A. Krivo²ija, A. Rey, H. Sandvoÿ

Datenstrukturen und Algorithmen SS17 Lösung - Übung 5

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

NAME, VORNAME: Studiennummer: Matrikel:

Algorithmen & Datenstrukturen 1. Klausur

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

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

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

7. Sortieren Lernziele. 7. Sortieren

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

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 16/17. Juli 2015 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Jan Hladik

void bellford ( List adjlst [n], int n, int i, int j){ int d[n] = + inf ; d[i] = 0;

Stud.-Nummer: Algorithmen & Datenstrukturen Seite 1

Klausur Algorithmentheorie

Algorithmen und Datenstrukturen 1 VU Übungstest SS Juni 2013

Datenstrukturen und Algorithmen D-INFK

Karlsruher Institut für Technologie. Klausur Algorithmen I

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

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

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Datenstrukturen und Algorithmen D-INFK

ADS: Algorithmen und Datenstrukturen 1

Klausur Algorithmen und Datenstrukturen II

Beispiellösung zur Prüfung Datenstrukturen und Algorithmen D-INFK

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Klausur Algorithmentheorie

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4

Übung: Algorithmen und Datenstrukturen SS 2007

Klausur Algorithmentheorie

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Klausur Informatik B April Teil I: Informatik 3

FAKULTÄT FÜR INFORMATIK

Klausur - Informatik I SS 05. Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel

Klausur Algorithmen und Datenstrukturen

Aufgabe 1 O-Notation (2+3+5=10 Punkte)

Globalübungsaufgabe1 (Rucksackproblem):

Übungsklausur Algorithmen I

Datenstrukturen und Algorithmen (SS 2013)

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Datenstrukturen und Algorithmen D-INFK

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

Tutoraufgabe 1 (2 3 4 Bäume):

Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger.

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Aufgaben zur Klausurvorbereitung

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Informatik B Sommersemester Musterlösung zur Klausur vom

Algorithmen und Datenstrukturen 1 VL Übungstest WS Jänner 2009

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Musterlösung zur Prüfung Datenstrukturen und Algorithmen D-INFK

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Tutoraufgabe 1 (Sortieralgorithmus):

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Matrikelnummer: Klausur Algorithmen I, Blatt 1 von 16

Transkript:

Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder 1. Klausur Datenstrukturen und lgorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik Lehramt (Bachelor) Sonstiges: Mathematik Bachelor CES Bachelor nzahl Punkte ufgabe 1 25 ufgabe 2 13 ufgabe 3 27 ufgabe 4 10 ufgabe 5 26 ufgabe 6 12 ufgabe 7 7 Summe 120 Erreichte Punkte llgemeine Hinweise: Schreiben Sie auf alle Blätter (inklusive zusätzliche Blätter) Ihren Vornamen, Ihren Nachnamen und Ihre Matrikelnummer. Geben Sie Ihre ntworten in lesbarer und verständlicher Form an. Schreiben Sie mit dokumentenechten Stiften, nicht mit roten oder grünen Stiften und nicht mit Bleistiften. Beantworten Sie die ufgaben auf den ausgeteilten ufgabenblättern. Geben Sie für jede ufgabe maximal eine Lösung an. Streichen Sie alles andere durch. ndernfalls werden alle Lösungen der ufgabe mit 0 Punkten bewertet. Werden Täuschungsversuche beobachtet, so wird die Klausur mit 0 Punkten bewertet. Geben Sie am Ende der Klausur alle Blätter zusammen mit den ufgabenblättern ab. 1

ufgabe 1 (Laufzeitanalyse): a) Beweisen oder widerlegen Sie: n2 ( n) 3 n 3 +1 Ω(n) (5 + 7 + 5 + 8 = 25 Punkte) b) Beweisen oder widerlegen Sie: Π n i=1 (i + n) O(n2n ) 2

c) Bestimmen Sie die Komplexitätsklasse der folgenden Rekursionsgleichung mithilfe des Mastertheorems oder begründen Sie, warum das Mastertheorem nicht anwendbar ist. { 16 T ( n T (n) = 4 ) + n 3 für n > 1 5 sonst Erinnerung Mastertheorem: E = log b (a) (alternativ b E = a) und f(n) O(n E ɛ ), ɛ > 0 T (n) Θ(n E ) f(n) Θ(n E ) T (n) Θ(n E log(n)) f(n) Ω(n E+ɛ ), ɛ > 0 und a f(n/b) d f(n), d < 1 T (n) Θ(f(n)) 3

d) Geben Sie die Rekursionsgleichung für die Laufzeit des folgenden lgorithmus an. Dabei sind die elementaren Operationen {+,,, /} O(1). Zuweisungen und Vergleiche können vernachlässigt werden. Geben Sie an, welche der Parameter einen Einfluss auf die Laufzeit haben. Für Verzweigungen im Kontrollfluss nutzen Sie bitte die Fallunterscheidung wie in der Vorlesung vorgestellt. int function(int a, int b) { int n = b; int twob = b; while(n > 0) { twob = twob + 1; n = n - 1; } if(a > 10) { return function(a/2,b) + function(a/2,b) + 2*function(a/2,b); } else if (a < 10 && a > 0) { return function(a/3,b-1) + function(a/3,b-1); } else { return 43; } } 4

ufgabe 2 (Sortierverfahren): (3 + 5 + 5 = 13 Punkte) a) Sortieren Sie das rray [ 8,5,1,9,7,3,2 ] durch nwendung des Insertionsort-lgorithmus aus der Vorlesung. Geben Sie dazu das rray nach jeder Iteration der äußersten Schleife an. Die nzahl der vorgegebenen Zeilen muss nicht mit der nzahl benötigter Schritte übereinstimmen. 8 5 1 9 7 3 2 5

b) Sortieren Sie das rray [ 7,6,5,9,4,8,2,3 ] durch nwendung des Quicksort-lgorithmus aus der Vorlesung. Geben Sie dazu das rray nach jeder Partition-Operation an. Denken Sie daran, dass im lgorithmus aus der Vorlesung sowohl die Wahl des Pivot-Elements als auch das Verfahren zur Partitionierung festgelegt sind. Die nzahl der vorgegebenen Zeilen muss nicht mit der nzahl benötigter Schritte übereinstimmen. 7 6 5 9 4 8 2 3 6

c) Ein Sortiernetzwerk ist ein Schaltkreis für n Eingangssignale (Schlüssel) i 1,..., i n, welcher diese Signale sortiert auf n usgangssignale o 1 o n abbildet. Dazu dürfen lediglich Komparatorschaltungen als senkrechte Verbindungen zwischen jeweils zwei Leitungen i und j mit i < j genutzt werden, welche die beiden Signale tauschen, wenn das Signal auf Leitung i größer als das Signal auf Leitung j ist. nsonsten werden die Signale unverändert weitergeleitet. Das folgende Netzwerk ist zum Beispiel ein Sortiernetzwerk für 4 Signale: 1. 2. 3. 4. 5. 6. i 1 i 2 i 3 i 4 o 1 o 2 o 3 o 4 Hier werden zunächst die Signale auf den Leitungen 1 und 2 miteinander verglichen und in korrekter Reihenfolge weitergeleitet. nschließend werden die Signale auf den Leitungen 3 und 4 verglichen usw., sodass am Ende die usgangssignale o 1 bis o 4 den Schaltkreis in sortierter Reihenfolge verlassen. Zur Illustration wenden wir das Netzwerk auf die Beispieleingabe i 1 = 5, i 2 = 3, i 3 = 4, i 4 = 1 an und geben die Werte auf den Leitungen 1 bis 4 unmittelbar nach den Schritten 1. bis 6. an: 1.) 3, 5, 4, 1 2.) 3, 5, 1, 4 3.) 3, 4, 1, 5 4.) 1, 4, 3, 5 5.) 1, 3, 4, 5 6.) 1, 3, 4, 5 Geben Sie ein Sortiernetzwerk für 5 Signale an, welches die 5 Eingangssignale gemäß dem Bubblesort-lgorithmus aus der Vorlesung sortiert auf die 5 usgangssignale abbildet (Sie können dazu annehmen, dass lengthofe aus dem lgorithmus in jeder Iteration um genau 1 reduziert wird). i 1 o 1 i 2 o 2 i 3 o 3 i 4 o 4 i 5 o 5 7

ufgabe 3 (Bäume): (4 + 5 + 5 + 7 + 3 + 3 = 27 Punkte) a) Überführen Sie den folgenden 2-3-4-Baum in einen Rot-Schwarz-Baum. Nehmen Sie beim Überführen von einem 3-er Knoten den rechten Schlüssel als Wurzel. Beachten Sie, dass rote Knoten rund und schwarze Knoten eckig dargestellt werden. Hinweis: Die Schlüssel sind die kleinen Zahlen rechts neben den im Knoten enthaltenen Daten. W 9 T 4,E 7 E 11,L 13,I 15 1 1,S 2,4 3! 5,T 6 M 8 E 10 R 12 2 14 0 16 8

b) Löschen Sie den Wert 9 aus dem folgenden VL-Baum und geben Sie die entstehenden Bäume nach jeder Löschoperation sowie jeder Rotation an: 5 2 9 1 4 11 3 9

c) Fügen Sie den Wert 13 in den folgenden 2-3-4-Baum ein und geben Sie den dabei entstehenden Baum an: 5,11,17 1,4 7 12,14,15 19,23 10

d) Fügen Sie den Wert 7 in den folgenden Rot-Schwarz-Baum ein und geben Sie die entstehenden Bäume nach jeder Einfügeoperation, jeder Rotation sowie jeder Umfärbung an. Beachten Sie, dass rote Knoten rund und schwarze Knoten eckig dargestellt werden. 3 2 11 5 11

e) Geben Sie einen Baum der Tiefe 4 mit minimaler Knotenanzahl an, welcher 2-höhenbalanciert ist. f) Geben Sie einen Binärbaum mit den Schlüsselwerten von 0 bis 6 an, der bei Inorder-Traversierung die Schlüssel in folgender Reihenfolge ausgibt: 0, 5, 2, 3, 4, 1, 6 12

ufgabe 4 (Hashing): (3 + 3 + 4 = 10 Punkte) a) Fügen Sie die folgenden Werte in das unten stehende rray a der Länge 7 unter Verwendung der Divisionsmethode mit linearer Sondierung ein (f(n, i) = ((n mod 7) + i) mod 7): 5, 7, 4, 11, 0, 12. a[0] a[1] a[2] a[3] a[4] a[5] a[6] b) Fügen Sie die folgenden Werte in das unten stehende rray a der Länge 11 unter Verwendung der Divisionsmethode mit quadratischer Sondierung (c 1 = 0.0, c 2 = 1.0) ein (f(n, i) = ((n mod 11)+ 0.0 i + 1.0 i 2 ) mod 11): 3, 7, 14, 25, 1, 12. a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] c) Nennen Sie die vier Eigenschaften, nach denen eine Hashfunktion qualitativ beurteilt werden kann. 13

ufgabe 5 (Graphen): (4 + 7 + 10 + 5 = 26 Punkte) a) Bestimmen Sie eine topologische Sortierung unter Verwendung des in der Vorlesung vorgestellten lgorithmus für den folgenden Graphen. Im gesamten lgorithmus werden Knoten in aufsteigender Reihenfolge ihrer Schlüssel berücksichtigt. ls Ergebnis geben Sie die Liste der Knotenschlüssel in aufsteigender Reihenfolge der Topologiewerte an. 1 2 3 4 5 6 7 8 9 10 11 12 14

b) Betrachten Sie den folgenden Graphen: 2 7 3 4 2 B 1 1 3 C D E 6 4 5 1 2 F Führen Sie den Dijkstra lgorithmus auf diesem Graphen mit dem Startknoten aus. Füllen Sie dazu die nachfolgende Tabelle aus, indem Sie den Wert von v und key nach jeder Iteration der while- Schleife eintragen: v key[] key[b] key[c] key[d] key[e] key[f] 15

c) Betrachten Sie das folgende Flussnetzwerk mit Quelle s und Senke t: 3 2 4 s B t 7 6 5 3 5 C Berechnen Sie den maximalen Fluss in diesem Netzwerk mithilfe der Ford-Fulkerson Methode. Geben Sie dazu jedes Restnetzwerk (auch das initiale) sowie nach jeder ugmentierung den aktuellen Zustand des Flussnetzwerks an. Geben Sie außerdem den Wert des maximalen Flusses an. Die vorgegebene nzahl an Lösungsschritten muss nicht mit der benötigten nzahl solcher Schritte übereinstimmen. Schritt 1: Schritt 2: Restnetzwerk: Nächstes Flussnetzwerk mit aktuellem Fluss: s B t s B t C C Schritt 3: Schritt 4: Restnetzwerk: Nächstes Flussnetzwerk mit aktuellem Fluss: s B t s B t C C 16

Schritt 5: Schritt 6: Restnetzwerk: Nächstes Flussnetzwerk mit aktuellem Fluss: s B t s B t C C Schritt 7: Schritt 8: Restnetzwerk: Nächstes Flussnetzwerk mit aktuellem Fluss: s B t s B t C C Schritt 9: Restnetzwerk: s B t C Der maximale Fluss hat den Wert: 17

d) Beweisen oder widerlegen Sie: Der Kondensationsgraph G = (V, E ) eines gerichteten Graphen G = (V, E) ist azyklisch. 18

ufgabe 6 (Dynamische Programmierung): a) Was ist Memoization und worauf kann man es anwenden? (2 + 10 = 12 Punkte) b) Gegeben sei ein Rucksack mit maximaler Tragkraft 10 sowie 4 Gegenstände. Der i-te Gegenstand soll hierbei ein Gewicht von w i und einen Wert von c i haben. Bestimmen Sie mit Hilfe des in der Vorlesung vorgestellten lgorithmus zum Lösen des Rucksackproblems mit dynamischer Programmierung den maximalen Gesamtwert der Gegenstände, die der Rucksack tragen kann (das Gesamtgewicht der mitgeführten Gegenstände übersteigt nicht die Tragkraft des Rucksacks). Die Gewichte seien dabei w 0 = 4, w 1 = 5, w 2 = 3 und w 3 = 6 und die Werte c 0 = 3, c 1 = 4, c 2 = 2 und c 3 = 5. Geben Sie zudem die vom lgorithmus bestimmte Tabelle C an und beschreiben Sie anhand der Tabelle wie man die mitzunehmenden Gegenstände bestimmen kann, um den maximalen Wert zu erreichen. 0 1 2 3 4 0 1 2 3 4 5 6 7 8 9 10 19

ufgabe 7 (Geometrische lgorithmen): a) Geben Sie die Definition einer konvexen Hülle an. (2 + 5 = 7 Punkte) b) Berechnen Sie die konvexe Hülle der folgenden Punktmenge. Benutzen Sie dafür Grahams Scan wie in der Vorlesung vorgestellt und geben Sie die Teilschritte nach jeder Iteration (also nach jedem neu hinzugefügten Punkt) an. Umkreisen Sie die Punkte, die vom lgorithmus in der Iterationsschleife nicht betrachtet werden. (4,10) (4,10) (1,7) (3,7) (7,7) (10,7) (1,7) (3,7) (7,7) (10,7) (4,5) (4,5) (9,4) (9,4) (3,1) (6,1) (8,1) (4,10) (3,1) (6,1) (8,1) (4,10) (1,7) (3,7) (7,7) (10,7) (1,7) (3,7) (7,7) (10,7) (4,5) (4,5) (9,4) (9,4) (3,1) (6,1) (8,1) (3,1) (6,1) (8,1) 20

(4,10) (4,10) (1,7) (3,7) (7,7) (10,7) (1,7) (3,7) (7,7) (10,7) (4,5) (4,5) (9,4) (9,4) (3,1) (6,1) (8,1) (4,10) (3,1) (6,1) (8,1) (4,10) (1,7) (3,7) (7,7) (10,7) (1,7) (3,7) (7,7) (10,7) (4,5) (4,5) (9,4) (9,4) (3,1) (6,1) (8,1) (4,10) (3,1) (6,1) (8,1) (4,10) (1,7) (3,7) (7,7) (10,7) (1,7) (3,7) (7,7) (10,7) (4,5) (4,5) (9,4) (9,4) (3,1) (6,1) (8,1) (3,1) (6,1) (8,1) 21