1. Aufgabe - fbi.h

Werbung
Algorithmik
Sommersemester 2017
Prof. Dr. Steffen Lange
3. Übungsblatt
1. Aufgabe
Es sei k ≥ 0 und L eine Liste mit n = 2k Zahlen.
Um das Produkt der Zahlen in der Liste L zu bestimmen, stehen die folgenden
zwei Algorithmen zur Verfügung.
Algorithmus A:
wie folgt:
Dieser Algorithmus bestimmt seinen Rückgabewert A(L)
(a1) Falls L genau eine Zahl enthält, so wird diese Zahl zurückgegeben.
(a2) Falls L mehr als eine Zahl enthält, so wird L in zwei gleich große
Listen L1 und L2 zerlegt. Anschließend werden rekursiv die
Rückgabewerte A(L1 ) und A(L2 ) bestimmt. Danach wird das
Produkt der Zahlen A(L1 ) und A(L2 ) berechnet und zurückgegeben.
Algorithmus B:
wie folgt:
Dieser Algorithmus berechnet seinen Rückgabewert B(L)
(b1) Falls L genau eine Zahl enthält, so wird diese Zahl zurückgegeben.
(b2) Falls L genau zwei Zahlen enthält, so wird das Produkt dieser
beiden Zahlen zurückgegeben.
(b3) Falls L mehr als zwei Zahlen enthält, so wird L in z Listen L1 ,
. . . , Lz mit jeweils zwei Zahlen zerlegt. Anschließend werden
rekursiv die Rückgabewerte B(L1 ), . . . , B(Lz ) bestimmt. Danach wird das Produkt der Zahlen B(L1 ), . . . , B(Lz ) berechnet
und zurückgegeben.
Beantworten Sie die folgenden Fragen so ausführlich, dass erkennbar ist, wie Sie
zu Ihren Antworten gekommen sind.
(i) Geben Sie eine einfache Funktion g1 (n) an, die gleichzeitig eine untere und
obere asymptotische Schranke für die Anzahl der Multiplikationen ist, die
der Algorithmus A benötigt, um für eine gegebene Liste L mit n Zahlen
den Rückgabwert A(L) zu bestimmen.
1
(ii) Geben Sie eine einfache Funktion g2 (n) an, die gleichzeitig eine untere und
obere asymptotische Schranke für die Anzahl der Multiplikationen ist, die
der Algorithmus B benötigt, um für eine gegebene Liste L mit n Zahlen
den Rückgabwert B(L) zu bestimmen.
2. Aufgabe
Es sei a ein Array der Größe 10, in dem die Zahlen 1 bis 10 gespeichert sind.
Beantworten Sie die folgenden Fragen und begründen Sie Ihre Antworten.
(i) Geben Sie eine Anordnung der Elemente im Array a an, so dass jedes
Sortierverfahren mindestens zwei Austauschoperationen benötigt, um das
Array a zu sortieren.
(ii) Geben Sie eine Anordnung der Elemente im Array a an, so dass jedes
Sortierverfahren mindestens acht Austauschoperationen benötigt, um das
Array a zu sortieren.
3. Aufgabe
Es sei a ein Array der Größe n, in dem rationale Zahlen gespeichert sind.
Begründen Sie, weshalb mindestens n − 1 Vergleiche benötigt werden, um die
maximale Teilsumme der im Array a gespeicherten Zahlen zu bestimmen.
Hinweis: Bei der Bearbeitung dieser Aufgabe können Sie benutzen, dass bekannt ist, dass mindestens n − 1 Vergleiche benötigt werden, um das Minimum
der im Array a gespeicherten Zahlen zu bestimmen.
4. Aufgabe
Es sei a ein Array mit n Elementen.
Teilaufgabe (a)
Es sei n = 7. Wie viele Vergleichsoperationen werden maximal benötigt, um mit
dem in der Vorlesung vorgestellten Verfahren einen Heap zu konstruieren, der
alle in a gespeicherten Elemente enthält.
Teilaufgabe (b)
Es sei n = 15. Wie viele Vergleichsoperationen werden maximal benötigt, um
mit dem in der Vorlesung vorgestellten Verfahren einen Heap zu konstruieren,
der alle in a gespeicherten Elemente enthält.
2
Teilaufgabe (c)
Zeigen sie, dass allgemein O(n) viele Vergleichsoperationen ausreichen, um mit
dem in der Vorlesung vorgestellten Verfahren einen Heap zu konstruieren, der
alle in a gespeicherten Elemente enthält.
5. Aufgabe
Begründen Sie, weshalb sieben Vergleiche genügen, um in einer Liste mit fünf
paarweise verschiedenen Elementen den Median, d.h. das Element vom Rank
k = 3 zu bestimmen.
Hinweis: Überlegen Sie sich, wie viele Vergleiche genügen, um eine Liste mit
vier paarweise verschiedenen Elementen zu sortieren.
6. Aufgabe
Modifizieren Sie das in der Vorlesung vorgestellte deterministische Verfahren
zum Bestimmen des Elements vom Rang k in einer Folge von n verschiedenen
Zahlen. Im Unterschied zur vorgestellten Variante soll nun die gegebene Folge in
Blöcke von drei Elementen (/* anstelle von fünf Elementen */) zerlegt werden,
um den Median der Mediane zu bestimmen.
(a) Illustrieren Sie die Arbeitsweise des Verfahrens, um das Element vom
Rank 3 in der folgenden Folge zu bestimmen:
2, 4, 1, 5, 7, 3, 8, 9, 6, 12, 14, 11, 15, 17, 13, 18, 19, 16
(b) Geben Sie eine Rekursionsgleichung an, um die Anzahl der Vergleichsoperation abzuschätzen, die dieses modifizierte Verfahren benötigt.
Viel Erfolg beim Bearbeiten der Aufgaben!
3
Herunterladen