Klausur Algorithmen und Datenstrukturen

Ähnliche Dokumente
Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

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

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen II

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

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

2. Klausur Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Algorithmen und Datenstrukturen

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

NAME, VORNAME: Studiennummer: Matrikel:

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

Karlsruher Institut für Technologie. Klausur Algorithmen I

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Klausur Algorithmentheorie

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

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

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Übungsklausur Algorithmen I

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Datenstrukturen & Algorithmen

FAKULTÄT FÜR INFORMATIK

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2007

Algorithmen und Datenstrukturen 1 VL Übungstest WS 2010/ November 2010

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

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

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

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

Algorithmen 1 Tutorium

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Klausur Algorithmentheorie

Algorithmen und Datenstrukturen II

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Informatik B Sommersemester Musterlösung zur Klausur am

Probeklausur Computerorientierte Mathematik II

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

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

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

Datenstrukturen und Algorithmen D-INFK

1. Klausur Datenstrukturen und Algorithmen SS 2014

Übung Algorithmen und Datenstrukturen

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Klausur Algorithmentheorie

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

Übungsklausur Algorithmen I

Algorithmen I - Tutorium 28 Nr. 9

Übung Algorithmen und Datenstrukturen

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 Zentrum Mathematik Propädeutikum Diskrete Mathematik. Klausurvorbereitung

Informatik B Sommersemester Musterlösung zur Klausur vom

Prüfung Datenstrukturen und Algorithmen, D-INFK. Datenstrukturen & Algorithmen

Stud.-Nummer: Algorithmen & Datenstrukturen Seite 1

Die asymptotische Notation

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

Übungsblatt 2 - Lösung

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Grundlagen: Algorithmen und Datenstrukturen

Übung: Algorithmen und Datenstrukturen SS 2007

Datenstrukturen & Algorithmen

Übung Algorithmen und Datenstrukturen

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006

Laufzeitanalyse (1) demogr.

ContainerDatenstrukturen. Große Übung 4

Übungsklausur Algorithmen I

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen

Diskrete Strukturen. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift ... Allgemeine Hinweise

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Grundlagen: Algorithmen und Datenstrukturen

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

A Berlin, 10. April 2017

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

DAP2-Klausur

Übung Algorithmen und Datenstrukturen

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

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

Vorname:... Matrikel-Nr.:... Unterschrift:...

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

Algorithmen und Datenstrukturen

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)

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen & Komplexität

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Matrikelnummer: Klausur Algorithmen I, Blatt 1 von 16

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit

Transkript:

Technische Universität Braunschweig Sommersemester 2018 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Christian Rieck Arne Schmidt Klausur Algorithmen und Datenstrukturen 05.09.2018 Name:.................................... Vorname:................................. Klausurcode: Dieser wird benötigt, um das Ergebnis der Klausur abzurufen. Matr.-Nr.:................................ Studiengang:.............................. Bachelor Master Andere Hinweise: Bitte das Deckblatt in Druckschrift vollständig ausfüllen. Die Klausur besteht aus 14 Blättern, bitte auf Vollständigkeit überprüfen. Die Heftung darf nicht entfernt werden Erlaubte Hilfsmittel: Keine. Eigenes Papier ist nicht erlaubt. Die Rückseiten der Blätter dürfen beschrieben werden. Die Klausur ist mit 50 % der Punkte bestanden. Antworten die nicht gewertet werden sollen bitte deutlich durchstreichen. Kein Tippex verwenden. Mit Bleistift oder in Rot geschriebene Klausurteile können nicht gewertet werden. Werden mehrere Antworten gegeben, werten wir die mit der geringsten Punktzahl. Sämtliche Algorithmen, Datenstrukturen, Sätze und Begriffe beziehen sich, sofern nicht explizit anders angegeben, auf die in der Vorlesung vorgestellte Variante. Sofern nicht anders angegeben, sind alle Graphen als einfache Graphen zu verstehen. Die Bearbeitungszeit für die Klausur beträgt 120 Minuten. Aufgabe 1 2 3 4 5 6 7 8 Σ Punkte 16 10 18 12 9 18 7 10 100 Erreicht Note Seite 1 / 14

Aufgabe 1: Graphen (8+4+4 Punkte) a) Wende Breitensuche auf den Graphen G aus Abbildung 1(a) an; starte dabei mit dem Knoten v 1. Kommen in einem Schritt des Algorithmus mehrere Knoten in Frage, wähle denjenigen mit dem kleinsten Index. Gib die entsprechende Datenstruktur R nach jeder Änderung an und zeichne die Kanten des gefundenen Breitensuchbaums in Abbildung 1(b). v 5 v 6 v 7 v 8 v 5 v 6 v 7 v 8 v 4 v 15 v 14 v 9 v 4 v 15 v 14 v 9 v 3 v 16 v 13 v 10 v 3 v 16 v 13 v 10 v 2 v 1 v12 v 11 v 2 v 1 v12 v 11 (a) Der Graph G (b) Knoten von G Abbildung 1: Graph und Knoten für Breitensuche Seite 2 / 14

b) Sei H ein zusammenhängender einfacher Graph. Zeige oder widerlege: Es existiert immer mindestens ein Knoten v in H, sodass H nach Entfernen von v zusammenhängend bleibt. c) Sei der Graph S aus Abbildung 2 gegeben. Zeige oder widerlege: Es lassen sich Kanten so in S einfügen, dass der resultierende einfache Graph eine Eulertour besitzt. v 5 v 4 v 6 v 3 v 1 v 2 Abbildung 2: Der Graph S. Seite 3 / 14

Aufgabe 2: AVL-Bäume (2+2+2+4 Punkte) a) Führe Delete(T 1, 5) auf dem AVL-Baum aus. Gib den Baum nach der Löschoperation sowie nach jeder Rotationsoperation an. 5 3 8 1 4 6 2 10 7 9 11 12 b) Führe Insert(T 2, 11) auf dem AVL-Baum aus. Gib den Baum nach der Einfügeoperation sowie nach jeder Rotationsoperation an. (Hinweis: Die Einfügeoperation darf in dem angegebenen Baum durchgeführt werden.) 7 5 10 8 12 Seite 4 / 14

c) Führe Insert(T 3, 9) auf dem AVL-Baum aus. Gib den Baum nach der Einfügeoperation sowie nach jeder Rotationsoperation an. (Hinweis: Die Einfügeoperation darf in dem angegebenen Baum durchgeführt werden.) 7 5 10 6 8 d) Zeige: Ein AVL-Baum der Höhe h hat höchstens 2 h 1 Knoten. Seite 5 / 14

Aufgabe 3: Asymptotisches Wachstum (6+3+3+3+3 Punkte) a) Kreuze an, in welchen Klassen die jeweilige Funktion liegt (ohne Begründung). f(n) O(1) Ω(n) Θ(n) Ω(n log n) O(n 2 ) 2n log n 3 0.1n n log(n!) 24 n 4n + 5 5 n b) In welcher Beziehung stehen die folgenden Klassen zueinander? Schreibe in das Feld, wenn Klasse A in Klasse B enthalten ist,, wenn Klasse B in Klasse A enthalten ist, =, wenn die Klassen A und B übereinstimmen und, wenn dies alles nicht zutrifft. Eine Begründung ist nicht notwendig. A Relation B Θ(1) Ω(1) O(n 2 ) Ω(n log n) Ω( 1 n ) Ω(n) Θ(log n) O(n log n) O(2 n ) O(3 n ) Θ( n2 log n ) Ω(n2 ) c) Seien f, g, h : N R Funktionen. Zeige oder widerlege: f(n) O(g(n)) g(n) Ω(h(n)) f(n) O(h(n)) Seite 6 / 14

d) Seien f 1, f 2, g 1, g 2 : N R Funktionen mit f := f 1 f 2 und g := g 1 g 2. Zeige oder widerlege: f(n) O(g(n)) f 1 (n) O(g 1 (n)) f 2 (n) O(g 2 (n)). e) Sei p(n) := 5n 3 10n 2 + 2n 3. Bestimme Konstanten c 1, c 2, n 0 um zu zeigen, dass p(n) Θ(n 3 ). Seite 7 / 14

Aufgabe 4: Rekursionen (3+3+3+3 Punkte) Bestimme mithilfe des Mastertheorems das asymptotische Wachstum der Rekursionen aus den Aufgabenteilen a) - d), falls das Mastertheorem anwendbar ist oder begründe, warum dieses nicht funktioniert. Ist das Mastertheorem anwendbar, bestimme die Werte aller auftretenden Parameter. a) ( n ) ( n T (n) = 10 T + n log n + 60 T + 28n 5 10) 2 b) ( n ) U(n) = 2 U + 3n 2 + U(n) 7 2 Seite 8 / 14

c) V (n) = 7n + 27 V ( n ) + 4n 2 n log n 3 d) ( n ) ( n ) W (n) = 7 W + 3n 3 2n 2 log n + 4 W + 5n 2 4 Seite 9 / 14

Aufgabe 5: Mediane (1+4+4 Punkte) a) Sei X eine Menge von Zahlen. Wie lautet die Definition eines Rang-k Elements m? b) Betrachte die untenstehenden, vorsortierten Fünfergruppen. (i) Markiere den Median der Mediane m und grenze in jeder Gruppe ab, welche Elemente größer bzw. kleiner als m sind. (ii) Welche Elemente müssen wir weiterhin betrachten, falls wir nach dem Rang-32 Element der 45 Elemente suchen? (Hinweis: Die Zahlen 1 bis 50 tauchen jeweils einmal auf.) (iii) Wie viel Prozent machen diese Elemente von allen aus? 9 19 12 2 1 11 4 15 7 17 23 30 3 6 14 8 20 10 27 36 31 5 13 32 21 39 16 28 37 34 38 18 33 22 40 24 29 41 43 44 35 42 25 45 26 c) Mit dem Median der Mediane von Fünfergruppen können wir immer so pivotisieren, dass wir eine Laufzeit von O(n) erhalten, um ein Rang-k Element zu finden. Was passiert mit der Laufzeit, wenn man Dreiergruppen statt Fünfergruppen benutzt? Seite 10 / 14

Aufgabe 6: Sortieren (8+2+3+5 Punkte) a) Wir betrachten Radixsort zum Sortieren von 10 in Abbildung 3 angegebenen Zahlen mit jeweils vier Ziffern. Sortiere das Array A aus Abbildung 3 mit Radixsort. Gib A nach jeder Iteration an nutze dazu Abbildung 3. 1234 1990 6271 0900 7854 1954 1337 2014 1974 2018 Abbildung 3: Radixsort im Array A. b) Der in Radixsort verwendete Sortieralgorithmus muss stabil sein. Wann ist ein Sortieralgorithmus stabil? Seite 11 / 14

c) Betrachten wir nun Quicksort. Wende Partition aus der Vorlesung auf das Array B in Tabelle 1 an. (Hinweis: Als Pivotelement wurde stets das Element ganz rechts gewählt. Der Platz unter der Tabelle ist für Nebenrechnungen gedacht.) 6 2 3 5 1 4 Tabelle 1: Array B. d) Es ist bekannt, dass Quicksort aus der Vorlesung im Worst-Case eine Laufzeit von Θ(n 2 ) besitzt. Zeige oder widerlege: Es kann in Partition immer ein Pivotelement gewählt werden, sodass für Quicksort eine Laufzeit von Θ(n log n) garantiert werden kann. Seite 12 / 14

Aufgabe 7: Algorithmenentwurf (7 Punkte) Betrachte einen binären Suchbaum B mit n Knoten. Jeder Knoten v in B besitzt ein Label h(v), worin die Höhe von v gespeichert ist. Zur Vereinfachung gilt h(nil) = 0. Die Höhendifferenz an einem Knoten v ist die Differenz der Höhen der beiden Kinder von v. Schreibe einen rekursiven Algorithmus in Pseudocode, der in O(n) Zeit überprüft, ob der gegebene binäre Suchbaum B ein AVL-Baum ist. Zeige, dass dein Algorithmus korrekt ist und die Laufzeit einhält. Seite 13 / 14

Aufgabe 8: Kurzfragen (2+2+2+2+2 Punkte) Kreuze an, welche Aussagen korrekt sind. Es gibt nur Punkte für vollständig korrekt angekreuzte Teilaufgaben. (Hinweis: In jeder Teilaufgabe ist immer mindestens eine Aussage korrekt.) a) Besitzt ein Graph G nur Knoten geraden Grades, dann... besitzt G immer eine Eulertour. besitzt G immer einen Hamiltonkreis. muss weder ein Hamiltonkreis noch eine Eulertour existieren. b) Mit welchem Verfahren können kürzeste Wege in einem ungewichteten Graphen gefunden werden? Tiefensuche Breitensuche Fleury c) Aus welcher Datenstruktur lässt sich ein Element x immer in O(1) Zeit löschen, wenn die Position von x bekannt ist? Doppelt-verkettete Liste Einfach-verkettete Liste AVL-Bäume d) In einem Baum mit mindestens zwei Knoten... gibt es mindestens zwei Blätter (d.h. Knoten von Grad 1). ist jeder Pfad zwischen zwei Knoten eindeutig. ist der höchste Knotengrad drei. e) Sei X eine Menge von Zahlen, die paarweise verschieden sind. Welche Aussagen sind wahr? Den Median zu finden benötigt Θ(n) Zeit. Der Median ist immer eindeutig. Nur bei ungerade vielen Elementen ist der Median eindeutig. Viel Erfolg Seite 14 / 14