Datenstrukturen und Algorithmen

Werbung
UA DI Harald Burgsteiner
17.5.2002
Prüfung zur Lehrveranstaltung
Datenstrukturen und Algorithmen
Stoffsemester WS 2001/2002
Es sind keinerlei Unterlagen oder Hilfsmittel erlaubt. Es dürfen nur einzelne, lose Blätter
verwendet werden! Auf jedem Blatt muß der Name und die Matrikelnummer angegeben
werden! Zeit: 90 Minuten.
(1) (4 Punkte). Beweisen oder widerlegen Sie die folgenden Sätze. Verwenden Sie dabei
keine Beispiele, sondern eine folgerichtige Argumentation!
(a) Ein Algorithmus, der einen Input der Größe n in O(n log n) Zeit bearbeitet,
benötigt O(n log n) Speicher.
(b) Ein Algorithmus, der für einen Input der Größe n zur Verarbeitung Θ(n2 )
Speicher benötigt, hat eine Laufzeit von Ω(n log n).
(c) Jeder Algorithmus, der für einen Input der Größe n insgesamt Θ(n) Speicher
benötigt, ist schneller als ein Algorithmus, der Ω(n3 ) Speicher benötigt.
(d) Es gibt einen Algorithmus, der für einen Input der Größe n eine Zeit von
O(n log n) und einen Speicher von Ω(n2 ) benötigt.
(2) (5 Punkte). Richtig oder falsch? Geben Sie für jede Ihrer Antworten eine kurze
Begründung an!
(a) Es existiert ein Sortieralgorithmus, der n beliebige Zahlen mit O(n4 ) Vergleichen sortiert.
(b) INTERPOLATIONSSUCHE benötigt im besten Fall ld(ld n) Schritte, um eine
Zahl in einem aufsteigend sortierten Feld der Länge n zu finden.
(c) Die symmetrische Reihenfolge eines Baumes mit ungerader Knotenanzahl enthält
die Wurzel genau in der Mitte.
(d) Es existieren verschiedene Bäume mit gleicher symmetrischer Reihenfolge.
(e) Ein Binärbaum mit n Blättern hat eine Höhe ≤ n2 .
(3) (5 Punkte). Gegeben ist ein lineares Feld A[1 . . . n], welches lauter positive Zahlen
enthält. Entwerfen Sie einen möglichst schnellen Algorithmus, der entscheidet ob
zwei Indizes i und j existieren, sodaß gilt A[i] = A[j] ∗ A[j]. Analysieren Sie Zeitund Speicherbedarf Ihres Algorithmus und beweisen Sie seine Korrektheit. Volle
Punkteanzahl nur für Algorithmen mit einer Zeit von maximal O(n log n).
(4) (6 Punkte). Finden Sie eine optimale Codierung für die Wörter
’ST U DIU M V ORN AM E N ACHN AM E’
wobei Sie für die drei Variablen V ORN AM E, N ACHN AM E und ST U DIU M
Ihren eigenen Namen und Ihr Studium einsetzen (jeweils ein Vor- und Nachname
reicht). Verwenden Sie nur Kleinbuchstaben und vergessen Sie nicht die Leerzeichen
zwischen den Worten!
Zeichnen Sie einen zugehörigen Codebaum und geben Sie einen möglichen Code an!
Wieviele Bits sind nötig um diesen Satz mit einem optimalen Code zu übertragen?
V iel Erf olg!
Herunterladen