Prüfung zu Lehrveranstaltung 708.031/032 Datenstrukturen und

Werbung
Robert Legenstein
Helmut Hauser
12.12.2006
Prüfung zu Lehrveranstaltung
708.031/032 Datenstrukturen und Algorithmen
Wann haben Sie die Übungen absolviert?
Es sind keinerlei Unterlagen oder Hilfsmittel erlaubt.
Es dürfen nur einzelne, lose Blätter verwendet
werden! Auf jedem Blatt muss der Name und die Matrikelnummer angegeben werden! Reine Arbeitszeit
beträgt 90 Minuten.
1. Hashtabellen (10 Punkte)
•
Erläutern Sie die Eigenschaften einer idealen Hashfunktion.
Nennen Sie zwei typische Methoden
zur Implementierung einer Hashfunktion (Vor- und Nachteile)
•
Erklären Sie die Kollisionsbehandlung mit Überläuferlisten. Leiten Sie Laufzeit
T (n)
im schlimm-
sten Fall und die zu erwartende Laufzeit ab (Sie können annehmen, dass eine ideale Hashfunktion
verwendet wird)
2. Pseudocode (10 Punkte)
Folgender Pseudocode ist gegeben. Der Aufruf erfolgt mit der Wurzel
w
eines binären Baums
ALGO (w):
ALGO (k)
1: S = 0
2: IF (LINKS(k)6=nil) AND (RECHTS(k)=nil) THEN
3:
S = 1 + ALGO(LINKS(k))
4: ELSEIF (LINKS(k)=nil) AND (RECHTS(k)6=nil) THEN
5:
S = 1 + ALGO(RECHTS(k))
6: ELSEIF (LINKS(k)6=nil) AND (RECHTS(k)6=nil) THEN
7:
S = ALGO(LINKS(k)) + ALGO (RECHTS(k))
8: RETURN S
•
Erklären Sie ausführlich Schritt für Schritt den Pseudocode und analysieren Sie die Laufzeit
in Abhängigkeit der Knotenanzahl
•
T (n)
n.
Welche Bedeutung hat der Rückgabewert
S
von ALGO(w), wenn
w
die Wurzel eines nicht leeren
Baums ist?
•
Zeichnen Sie einen Baum mit 15 Knoten, welcher für diesen Algorithmus einen Rückgabewert von
S=0
•
liefert.
Zeichnen Sie einen Baum mit 15 Knoten, für den der Algorithmus als Rückgabewert die gröÿtmögliche Zahl liefert.
ACHTUNG: Weitere Aufgaben auf der Rückseite !
3. Notation (10 Punkte)
Achtung:
Antworten ohne Begründung werden NICHT berücksichtigt.
Beweisen oder widerlegen Sie
folgende Aussagen:
•
Es existiert kein Suchalgorithmus welcher eine Laufzeit von
•
Jeder Algorithmus, welcher einen Speicher von
welcher einen Speicher von
Ω(n3 )
Θ(n)
O(n2 log n)
besitzt.
benötigt, ist schneller als ein Algorithmus,
benötigt.
O(n·log n) und einen Speicher von Ω(n2 )benötigt.
p
• Es existiert ein Algorithmus mit einen Speicherbedarf von Θ(n2 ) und eine Laufzeit von Ω(n· n/2).
•
Es existiert ein Algorithmus welcher eine Laufzeit von
•
Jeder Algorithmus mit einer Laufzeit
T (n) = Θ(nc )
mit
c>2
ist auch
T (n) = Ω(logc n).
4. Algorithmusentwurf (10 Punkte)
Gegeben sei ein zweidimensionales Feld
A[1..n, 1..n].
Entwerfen Sie einen Algorithmus, welcher möglichst
schnell entscheidet ob eine Zahl existiert, welche in jeder Zeile von
A
mindestens einmal auftritt. Zeigen
Sie die Lösung in Form eines Pseudocodes und beweisen Sie die Richtigkeit Ihres Algorithmus.
Die volle Punkteanzahl gibt es nur für
O(n2 log n)
oder besser.
Viel Erfolg!
Herunterladen