Probeklausur Datenstrukturen und Algorithmen SS 2010

Werbung
Fakultät für Elektrotechnik, Informatik und Mathematik
Professor Dr. Christian Scheideler
Probeklausur Datenstrukturen und Algorithmen SS 2010
Abgabe: 16.7.2010, 11:15 Uhr
Name, Vorname: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Matrikelnummer: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Studiengang bitte ankreuzen:
2
2
2
2
2
2
2
2
2
2
2
2
Informatik, Bachelor (seit WS 04/05)
Informatik, Bachelor/Diplom (DPO 4)
Informatik, Lehramt
Ingenieurinformatik mit Schwerpunkt Informatik
Ingenieurinformatik mit Schwerpunkt Elektrotechnik
Ingenieurinformatik mit Schwerpunkt Maschinenbau
Algorithmische Mathematik
Mathematik Diplom
Wirtschaftsinformatik
Medienwissenschaften (80%)
Magister mit Nebenfach Informatik (80%)
Sonstiges: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bitte Zutreffendes ankreuzen:
Fachprüfung:
2
Leistungsnachweis:
2
Teilnahmeschein:
2
Bitte sorgfältig durchlesen und beachten!
• Prüfen Sie die Vollständigkeit Ihres Klausurexemplares (Deckblatt, 5 Aufgaben).
• Schreiben Sie zu Beginn der Klausur auf das Deckblatt und jede weitere Seite
DEUTLICH LESBAR Ihren Namen, Ihren Vornamen und Ihre Matrikelnummer. KLAUSUREN
OHNE DIESE ANGABEN WERDEN NICHT GEWERTET!
• Verwenden Sie keinen Rotstift, keinen Bleistift und kein eigenes Konzeptpapier. Benutzen Sie nur
den Platz unter den Aufgabenstellungen und die Rückseiten der Blätter für Ihre Lösungen. Am
Ende der Klausur befinden sich zwei Blätter Konzeptpapier, die Sie abreißen können.
• Sollten Sie zusätzliches Konzeptpapier benötigen, so wenden Sie sich bitte an die Aufsicht.
• Werden zu einer Aufgabe mehrere Lösungen angegeben, so gilt die Aufgabe als NICHT gelöst.
• Als Hilfsmittel ist NUR ein doppelseitig handbeschriebenes DIN A4 Blatt erlaubt; schreiben Sie
auch auf dieses Blatt Ihren Namen.
• Zulassungsvorbehalt: Hätten Sie wissen können, dass Sie zur Klausur nicht zugelassen sind,
wird die bestandene Klausur NICHT gewertet; die nicht bestandene gilt ggf. als Fehlversuch.
Aufgabe
erreichbare Punkte
erreichte Punkte
1
12
2
12
3
12
4
12
5
12
P
60
Name:
Matrikelnummer:
AUFGABE 1: Multiple choice (12 Punkte)
1. Für jeden Knoten eines AVL-Baums gilt, dass sich die Anzahl der Knoten seines linken und
rechten Teilbaums um höchstens 1 unterscheidet.
2 Richtig
2 Falsch
2. Ein minimaler Spannbaum ist immer eindeutig.
2 Richtig
2 Falsch
3. Der Algorithmus von Kruskal hat eine Laufzeit von:
2 O(|V |log|V
√ |)
log|V
|
2 O(2
V + 2log|E| )
2 O(|V |log|V | + |E|log|E|)
2 O(|V | + |E|)
√
4. Bei Anwendung des Master-Theorems auf T (n) = n3 + 9 ∗ T ( n3 ) ergibt sich eine Laufzeitabschätzung von:
2 O(n)
2 O(n log n)
2 O(n1.5 )
2 O(n2 )
5. Insertion-Sort hat eine Best-Case Laufzeit von:
2 Θ(n)
2 Θ(n log n)
2 Θ(n2 )
2 Θ(n2 log n)
6. Beim Hashing mit Kollisionsverwaltung durch verkettete Listen beträgt die Worst-Case Laufzeit
zum Entfernen eines Objektes O(1).
2 Richtig
2 Falsch
Name:
Matrikelnummer:
AUFGABE 2: Floyd-Warshall (12 Punkte)
Gegeben ist ein Graph G = (V, E) in Adjazenzmatrixdarstellung:


0 3
8 ∞ −4
 ∞ 0 ∞ 1
7 


 ∞ 4
0 ∞ ∞ 


 2 ∞ −5 0 ∞ 
∞ ∞ ∞ 6
0
1. Stellen Sie G mitsamt aller Kanten aus E und Kantengewichten (u, v) ∈ E|w(u, v) 6= ∞ grafisch
dar.
2. Berechnen Sie mittels Floyd-Warshall für alle u, v ∈ V die Distanzen der kürzesten Wege bis
einschließlich D(3) .
Name:
Matrikelnummer:
AUFGABE 3: Hashing (12 Punkte)
Gegeben sei eine leere Hashtabelle mit m = 13.
1. Nachfolgend betrachten wir Hashing mit verketteten Listen zur Kollisionsverwaltung. Wählen
Sie unter den unten aufgeführten Hashfunktionen eine gute aus und begründen Sie ihre Wahl.
Stellen Sie weiterhin die Hashtabelle nach dem Einfügen der Schlüssel in der Reihenfolge 12, 23,
13, 56, 26, 45, 10 dar.
h11 (x) := (3x + 1) mod m
h12 (x) := ((2x + 7) mod 11) mod m
2. Nachfolgend betrachten wir Hashing mit offener Adressierung. Wählen Sie unter den unten aufgeführten Hashfunktionen eine gute aus und begründen Sie ihre Wahl. Stellen Sie weiterhin die
Hashtabelle nach dem Einfügen der Schlüssel in der Reihenfolge 12, 23, 13, 56, 26, 45, 10 dar.
h21 (x, i) := (2 ∗ h12 (x) + 26 ∗ i) mod m
h22 (x, i) := (h11 (x) + i) mod m
Name:
Matrikelnummer:
AUFGABE 4: Sortieralgorithmen (12 Punkte)
Gegeben sei ein anfangs sortiertes Array von n Zahlen (a1 , . . . , an ) mit ai ∈ Z. In diesem Array
werden nun einige Elemente verringert, indem positive Zahlen abgezogen werden. Wieviele und welche
Elemente verringert werden ist nicht bekannt. Ebenso ist nicht bekannt, um welchen Betrag ein Element
verringert wird.
Das Array soll nun in Worst-Case Laufzeit O(n ∗ k) wieder sortiert werden, wobei k die Anzahl der
verringerten Elemente ist. Beachten Sie: Wird nur ein einziges Element verringert (k = 1), so ist die
geforderte Laufzeit O(n).
• Geben Sie den Pseudocode des Sortieralgorithmus an.
• Analysieren Sie die Laufzeit des Algorithmus.
Name:
Matrikelnummer:
AUFGABE 5: Datenstrukturen (12 Punkte)
1. Wir möchten von einem Strom von Zahlen (z.B. von einer kontinuierlich durchgeführten Messung) die letzten n Zahlen speichern. Eine neue Zahl muss also die am längsten vorgehaltene
Zahl verdrängen. Entwickeln Sie für dieses Problem eine Datenstruktur und die dazugehörige
Einfüge-Operation in Pseudocode. Die Einfüge-Operation soll Worst-case Laufzeit Θ(1) haben.
Nehmen Sie dazu an, dass n bekannt ist. Beachten Sie, dass die Datenstruktur am Anfang der
Aufzeichnung noch nicht gefüllt ist.
2. Nun möchten wir zusätzlich den Durchschnitt aller Zahlen speichern. Erweitern Sie Ihre EinfügeOperation derart, dass diese nach dem Einfügen der neuen Zahl den neu berechneten Durchschnitt
zurückgibt. Die asymptotische Laufzeit darf sich nicht verschlechtern!
3. Begründen Sie, warum Ihre Implementierung aus Teilaufgabe 2 die Laufzeit einhält.
4. Beweisen Sie die Korrektheit Ihrer Einfüge-Operation aus Teilaufgabe 2.
Herunterladen