3. ¨Ubung zur Informatik I

Werbung
Prof. Dr. R. Schrader
Ch. Hagemeier
SS 2002
3. Übung zur Informatik I
Abgabe: 7. und 8.5.2002 in den Übungen
Aufgabe 8:
(5+1+4+2+3 Punkte)
Gegeben sei ein Feld a[0], a[1], . . . , a[N ] mit a[0] = −1 und a[i] ∈ IIN für i = 1, . . . , N .
Betrachten Sie das folgende Programmstück:
Sortieren(int a[], int N) {
int i, j, hilfe;
for (i = 2; i <= N; i++) {
hilfe = a[i]; j = i;
while (a[j-1] > hilfe) {
a[j] = a[j-1];
j = j - 1;
}
a[j] = hilfe;
}
}
a) Beschreiben Sie mit Worten, wie der obige Algorithmus funktioniert, und was er leistet. Wozu dient die Vereinbarung a[0] = −1, wie könnte man diese umgehen? Zählen
Sie die maximale und minimale Anzahl der durchgeführten Vergleiche Vmax (N ) bzw.
Vmin (N ) und die maximale und minimale Anzahl der Bewegungen von Datensätzen
Bmax (N ) bzw. Bmin (N ).
b) Das Paar (i,j) ist eine Inversion, falls i < j und a[i] > a[j] ist. Wie korrespondieren
die Anzahl der Inversionen der Eingabefolge und die Laufzeit des Algorithmus?
c) Geben Sie für die nachstehenden Zahlenfolgen die Anzahl der Vergleiche und die
Anzahl der Bewegungen in asymptotischer Notation an, und begründen Sie Ihre
Aussagen.
(a) 1, N2 + 1, 2, N2 + 2, . . . , N2 , N (N gerade)
(b) N, 1, N − 1, 2, N − 2, 3, . . . , N −
(c) N, 1, 2, 3, . . . , N − 1
(d) 2, 3, 4, . . . , N, 1
N
2
+ 1, N2 (N gerade)
d) Ein Sortieralgorithmus heißt stabil, wenn die Sortierreihenfolge von Elementen mit
gleichem Sortierschlüssel während des Verfahrens nicht vertauscht wird. Untersuchen
Sie den Algorithmus auf Stabilität, und überlegen Sie ein Beispiel, für das die Stabilität beim Sortieren ausgenutzt wird.
e) Was passiert, wenn jedes Element der zu sortierenden Menge nicht nur aus dem
Schlüssel, nach dem sortiert wird, sondern aus einem umfangreichen Datensatz besteht? Modifizieren Sie das Verfahren entsprechend, um dieses Problem effizienter zu
lösen.
Aufgabe 9:
(3 Punkte)
Warum ist folgende Argumentation falsch?
T sei ein binärer Baum, auf dessen Knoten in symmetrischer Durchmusterung ein Verfahren
durchgeführt wird, das in jedem Knoten höchstens 5 Elementarschritte benötigt. Wir zeigen
mit vollständiger Induktion, daß die Gesamtlaufzeit für den Baum O(1) berägt:
• Die Aussage ist trivialerweise erfüllt, wenn der Baum nur aus einem Knoten besteht.
• T sei ein Binärbaum mit n Knoten. Er besteht aus der Wurzel r, dem linken Teilbaum
Tl und dem rechten Teilbaum Tr . Nach Induktionsannahme betragen die Laufzeiten
für Tl und Tr jeweils O(1). Also erhält man eine Gesamtlaufzeit für T von O(1) +
5 + O(1) = O(1).
Aufgabe 10:
Durchmusterung von Binärbäumen
(2+6 Punkte)
a) Bei der Durchmusterung eines Binärbaumes in Präordnung werden die Knoten in der
Reihenfolge
OBTHKENSUC
durchlaufen, während sich bei der symmetrischen Durchmusterung des Baumes die
Reihenfolge
HTBEKNOUSC
ergibt. Zeichnen Sie einen Binärbaum, dessen Durchmusterung des Baumes die Zeichenfolgen liefert. Ist die Lösung eindeutig?
b) Zeigen Sie, daß man einen binären Baum immer rekonstruieren kann, wenn die Durchmusterungsreihenfolgen in Präordnung und der symmetrischen Durchmusterung bekannt sind.
Was passiert, wenn man Präordnungs- und Postordnungsreihenfolge beziehungsweise
Postordnungsreihenfolge und symmetrische Durchmusterungsfolge kennt?
Herunterladen