Hinweise zur Bearbeitung der Klausur zum Kurs 1662/1663,,Datenstrukturen"

Ähnliche Dokumente
Kurs 1661 Datenstrukturen I Klausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I

Kurs 1661 Datenstrukturen I Nachklausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I

Lösungsvorschläge zur Hauptklausur Datenstrukturen

Kurs 1661 Datenstrukturen I Klausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I

2. Klausur Datenstrukturen und Algorithmen SS 2014

Karlsruher Institut für Technologie. Klausur Algorithmen I

Wintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung

Hinweise zur Bearbeitung der Klausur zum Kurs Einführung in die imperative Programmierung

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Prüfung Algorithmen und Datenstrukturen I

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

Kurs 1613 Einführung in die imperative Programmierung

Datenstrukturen und Algorithmen (SS 2013)

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

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

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

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

Fragenkatalog 1. Kurseinheit

Klausur Algorithmen und Datenstrukturen

NAME, VORNAME: Studiennummer: Matrikel:

Klausur Algorithmentheorie

DAP2-Klausur

Copyright, Page 1 of 7 Heapsort

Klausur Algorithmen und Datenstrukturen

3.2. Divide-and-Conquer-Methoden

Lösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I

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

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

Klausur Algorithmen und Datenstrukturen

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

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Technische Universität München SoSe 2018 Fakultät für Informatik, I Juli 2018 Dr. Stefanie Demirci. Aufgabe 1 Sortieren mit Heap Sort

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

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

Algorithmen und Datenstrukturen

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

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Suchen und Sortieren Sortieren. Heaps

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

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Lernmodul 7 Algorithmus von Dijkstra

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Datenstrukturen und Algorithmen D-INFK

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

A3.1 Sortieralgorithmen

Datenstrukturen und Algorithmen D-INFK

Kurs 1613 Einführung in die imperative Programmierung

Datenstrukturen und Algorithmen D-INFK

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Relationen und Graphentheorie

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Klausur Datenstrukturen und Algorithmen SoSe 2012

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Lösungsvorschläge zur Klausur 1661 Datenstrukturen I

Aufgabe 1 Pseudocode und Analyse /6 Sei A ein zweidimensionales n n Array mit 0 1 Einträgen A[i][j]. In jeder Zeile stehen alle Nullen vor allen Einse

Dynamische Datenstrukturen

Informatik II, SS 2018

Klausur Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen D-INFK

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT)

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

Technische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci

Wie schreibe ich ein Programmierstils in Deutschland

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

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Datenstrukturen und Algorithmen (SS 2013)

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Stud.-Nummer: Algorithmen & Datenstrukturen Seite 1

Datenstrukturen & Algorithmen

Übung Algorithmen und Datenstrukturen

Klausur Algorithmentheorie

INFORMATIK FÜR BIOLOGEN

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Klausur Algorithmentheorie

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Datenstrukturen und Algorithmen D-INFK

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016

Datenstrukturen und Algorithmen D-INFK

Grundlagen der Algorithmen und Datenstrukturen Kapitel 6

Sortieren II / HeapSort Heaps

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

ADS: Algorithmen und Datenstrukturen 2

Auswählen nach Rang (Selektion)

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

Wenn wir zudem a ii = 1 für 1 i n setzen, dann gilt für A k (boolesches Produkt, A 0 = I) 0 falls es im Graphen keinen Pfad von v i nach v j,

Transkript:

Kurs 166211 663,,Datenstrukturen6' Klausur am 09.08.2003 Seite 1 Hinweise zur Bearbeitung der Klausur zum Kurs 1662/1663,,Datenstrukturen" Bitte lesen Sie sich diese Hinweise vollständig und aufmerksam durch, bevor Sie mit der Bearbeitung der Klausur nen. Beachten Sie insbesondere die Punkte 7 und 8! 1. Die Klausurdauer beträgt 3 Stunden. 2. Prüfen Sie bitte die Vollständigkeit Ihrer Unterlagen. Die Klausur umfaßt: 2 Deckblätter diese Hinweise 1 Formblatt für eine Teilnahmebescheinigung zur Vorlage beim Finanzamt 6 Aufgaben auf den Seiten 2-5 3. Bevor Sie mit der Bearbeitung der Klausuraufgaben nen, füllen Sie bitte die folgen Teile der Klausur aus: (a) siilntliche Deckblätter mit Name, Anschrift sowie Matrikelnummer. Markieren Sie vor der Abgabe auf allen Deckblättern die von Ihnen bearbeiteten Aufgaben. (b) die Teilnahmebescheinigung, falls Sie diese wünschen. 4. Schreiben Sie Ihre Lösungen auf ihr eigenes Papier (DIN A4) und nicht auf die Seiten mit den Aufgabenstellungen. Heften Sie vor Abgabe der Klausur die Deckblätter (und evtl. die Teilnahmebescheinigung) an Ihre Bearbeitung. 5. Schreiben Sie bitte auf jedes Blatt oben links Ihren Namen und oben rechts Ihre Matrikelnummer. Numerieren Sie Ihre Seiten bitte durch. 6. Wen Sie bei der Lösung der Aufgaben, soweit dies möglich ist, die Algorithmen und Notationen aus den Kurseinheiten an. 7. Schreiben Sie, wenn Algorithmen gefordert sind, keine kompletten PASCAL- oder MODULA- 2-Programme, sondern beschränken Sie sich auf die wesentlichen Teile des Algorithmus, die 2.T. auch in Prosa formuliert werden können. Formulieren Sie Algorithmen aber so, daß die elementaren Einzelschritte erkennbar werden. Sparen Sie aber bei solchen Aufgaben nicht mit Kommentaren. Wenn Ihre Lösung aufgrund fehler Kommentare nicht verständlich ist, führt das zu Punktabzug. 8. Vermeiden Sie in jedem Fall bei der Definition von Funktionen in Algebren PASCAL- oder MODULA-2-Programme sowie Algorithmen. Geben Sie lediglich mathematische Definitionen an wie sie im Kurstext verwandt worden sind! Ebenso sind Mengefinitionen in mathematischer Mengennotation durchzuführen. Geben Sie auf keinen Fa11 Datentypdefinitionen an, und verwen Sie keine konkreten Datenstrukturen! 9. Als Hilfsmittel sind nur unbeschriebenes Konzeptpapier und Schreibzeug (kein Bleistift!) zugelassen. 10. Es sind maximal 100 Punkte erreichbar. Zur Erlangunp eines Übungsscheins bzw. Zertifikats benötigen Sie etwa 50 Punkte.

Seite 2 Klausur am 09.08.2003 Kurs 166211 663 Datenstrukturen" 12 Punkte Aufgabe 1 (Speicherbedarf - Speicherlöcher) Gegeben Sei die folge Pascal-Implementierung von Merge-Sort: CONST MAX = 100; TYPE TField = ARRAY [O..MAXI of integer; PFiqld = ^TField; function merge(partl,part2 : PField; left,mid,right : integer) : PField; {verschmilzt zwei sortierte Felder zu einem sortiertem Feld} var Res : PField; {... weitere ~ariableklarationen} new (Res) ; {erzeuge ~rgebnis} {... verschmelze die gegebenen Felder, speichere das Ergebnis in es} merge := res; ; function mergesort(fie1d : PField;left,right:integer) : PField; var Partl,Part2 : PField; Res : PField; mid : integer; if(left=right) then {~bbruch, nur ein ~lement} new (Res); ResA [left] : = FieldA [left]; MergeSort : = Res else mid := (leftcright) div 2; Partl := mergesort(field,left,mid); Part2 := mergesort(field,mid+l,right) ; Res : = merge (Partl, Part2, left, mid, right) ; dispose (Partl) ; dispose (Part2 ) ; MergeSort := Res; :. ; 7 Punkte (a> 5 Punkte 0) Geben Sie den Speicherplatzbedarf dieser Funktion in Abhängigkeit von MAX an. Verwen Sie hierzu die 0-Notation und begründen Sie Ihr Ergebnis (eine informelle Beschreibung genügt). Wird in Programmen belegter Speicher nicht wieder freigegeben, spricht man von sogenannten Speicherlöchern (memory leaks). Geben Sie an, wieviel Speicher von der oben angebenen Funktion verschwet wird, wenn der reservierte Speicher nicht wieder freigegeben wird (also die beiden dispose- Anweisungen im Programm fehlen). Geben Sie Ihr Ergebnis in 0-Notation an und begründen Sie es.

Kurs 166211 663,,DatenstrukturenU Klausur am 09.08.2003 Seite 3 Aufgabe 2 (B -Bäume) 16 Punkte (a) Fügen Sie die folgen Elemente in einen B-Baum der Ordnung 2 ein. 8 Punkte Zeichnen Sie den Baum immer dann, wenn eine Overflow-Operation nötig ist und markieren Sie den entsprechen Knoten. (b) Löschen Sie aus dem Ergebnisbaum aus Aufgabenteil a) nacheinander die 8 Punkte Schlüssel 12, 13,55 und zeichnen Sie die Ergebnisbäume nach jeder Löschoperation. Aufgabe 3 (HeapSort) 18 Punkte (a) Beschreiben Sie die Idee des Bottom-Up-Heapsort (im Unterschied zum 6 Punkte Standard-Heapsort). (b) Wen Sie Heapsort an, um eine aufsteig sortierte Folge zu erhalten. Fü- 12 Punkte gen Sie dazu zunächst die Elemente der Reihe nach in einen Heap ein. Geben Sie den Ausgangsheap und seine Array-Einbettung an. Führen Sie nun Heapsort durch. Zeichnen Sie den Heap nach jedem Schritt und markieren den Einsinkpfad und die gefundene Position gemäß der Idee des Bottom-Up-Heapsort. Markieren Sie im Heap außerdem die bereits sortierte Folge besonders.

Seite 4 Klatrs~ir am 09.08.2003 Kurs 166211663,,Datenstrukturenu 20 Punkte Aufgabe 4 (Berechnung der Transitiven Hülle) Nachfolg ist der Algorithmus von Floyd,.der aus der Kostenmatrix C eines Graphen G=(KE) die Kosten der kürzesten Wege zwischen allen Knoten ermittelt und diese in der Kostenmatrix A speichert, dargestellt. Die Matrix P wird zur Rekonstruktion der kürzesten Pfade benötigt. algorithm Floyd ( out A: X Kostenmatrix der kürzesten Wege, in C: Iq X Iq Kostenmatrix von G ) kopiere die Werte aus C nach A. for i := 1 to n do{dies sind die Haupt-"Schritte" des Algorithmus) for j := 1 to n do for k := 1 to n do if Aji + Aik < Ajk then do Ajk := Aji + Aik Pik"' Floyd; 12 Punkte 8 Ptinkte Modifizieren Sie Floyds-Algorithmus, um damit die Transitive Hülle von ungerichteten Graphen berechnen zu können, sehen Sie dabei möglichst effizient vor. Berechnen Sie die Transitive Hülle des unten dargestellten Graphen. Stellen Sie den Graphen als Adjazenzmahix dar, und listen Sie nur alle notwigen Rechenschritte auf, zeichnen Sie auch den resultieren Graphen. 14 Pz~nkte Aufgabe 5 (Range-Baum) 7 Punkte 7 Punkte (a) (b) Fügen Sie die Zahlenfolze {7,2,6,1,8,3} in einen Range-Baum über dem Raster { 1...8} ein. Erzeugen Sie zunächst einen leeren Baum über diesem Raster, und fügen Sie dann die Elemente ein. Welchen Platzbedarf hat ein so erzeugter Range-Baum über dem Raster { l...n), der n Koordinaten enthält? Begründen Sie Ihre Antwort.

Kurs 166211 663 Datenstrukturen" Klausur am 09.08.2003 Seite 5 Aufgabe 6 (k-kleinstes Element) 20 Punkte Manchmal ist es notwig, den minimalen oder den maximalen Wert einer Folge zu finden. Eine Verallgemeinerung hiervon ist es, das k-kleinste Element einer Menge zu finden. Eine Möglichkeit, dies zu erreichen ist es, die Folge zunächst zu sortieren und das k-te Element auszuwählen. Der dazu notwige Aufwand beträgt O(nlog(n)). wobei n'die Folgenlänge darstellt. Es ist jedoch nicht notwig, die gesamte Folge zu sortieren, um das gesuchte Element zu finden. (a) Entwickeln Sie einen DAC-Algorithmus, der das k-kleinste Element einer ge- 11 Punkte gebenen Folge berechnet. Ihr Algorithmus sollte im durchschnittlichen Fall in O(n) Zeit auskommen. Sie können davon ausgehen, daß alle Werte in der Eingabefolge paarweise verschieden sind. (b) Beweisen Sie die durchschnittliche Zeitschranke Ihres Algorithmus. Stellen g Punkte Sie hierfür zunächst die Rekursionsgleichung auf und lösen Sie diese anschließ auf. Zeigen Sie die Korrektheit der Auflösung mittels vollständiger Induktion. Hinweis: Zur Vereinfachung können Sie in Ihrer Berechnung O(n) durch n und konstante Werte durch 1 ersetzen. Weiterhin dürfen Sie annehmen, daß n eine Zweierpotenz ist.