Algorithmen und Datenstrukturen Fachhochschule Wiesbaden
Sommersemester 2007 Prof. Dr. Steffen Reith
5. ¨ Ubungsblatt
Aufgabe 1 (L¨osung wird abgenommen) (Merge Sort) Zur vollst¨andigen Bearbeitung dieser Aufgabe sind die folgenden Punkte zu be- arbeiten:
• Entwerfen Sie ein Struktogramm f¨ur Merge Sort.
• Entwickeln Sie eine Merge Sort Implementation, die nat¨urliche Zahlen sor- tiert. Ihre Implementation muss mit maximalMAX_ELEMvielen Zahlen umge- hen k¨onnen.
• Testen Sie Ihre Implementation mit Pseudozufallszahlen.
• In der Vorlesung wurde Merge Sort rekursiv so lange aufgerufen, bis nur noch ein Element zu sortieren war. Modifizieren Sie Ihr Struktogramm und Ihre Implementierung so, dass die Rekursion schon abbricht, wenn nicht mehr als drei Komponenten zu sortieren sind und behandeln Sie diesen Fall entspre- chend.
Aufgabe 2 (L¨osung wird abgenommen) (Laufzeiten) Mitlong curTime = System.currentTimeMillis();kann man die aktuelle Sy- stemzeit bestimmen. Modifizieren Sie Ihre Implementation von Merge Sort so, dass Sie messen k¨onnen, wieviel Zeit der reine Sortiervorgang ben¨otigt (also ohne Erzeugung der Zufallszahlen und Ausgabe!).
1. Erstellen Sie eine Tabelle, die die Sortierzeiten f¨ur 10000, 20000, 40000, 80000 und 100000 Pseudozufallszahlen enth¨alt.
2. Modifizieren Sie Ihren Selection Sort aus der letzten ¨Ubungsaufgabe so, dass Sie messen k¨onnen wieviel Zeit der reine Sortiervorgang ben¨otigt. Erstel- len Sie eine Tabelle, die die Sortierzeiten f¨ur 10000, 20000, 40000, 80000 und 100000 Pseudozufallszahlen enth¨alt. Welche Rechenzeit erwarten Sie f¨ur 200000, 400000 und 800000 Zufallszahlen?
Die Abnahme erfolgt in der KW19 von 7.5.2007 - 11.5.2007
Ubungsaufgaben zur O-Notation ¨
• Es seien die folgenden Funktionen definiert:
f = 5 + 3·n g = 4·82+ 7·n h = 210·log4(n) k = n2+13n·n24+2·n
F¨ullen Sie die leeren K¨astchen mit dem korrekten Symbol aus der Menge {=,6=,∈,6∈,⊆,6⊆}
n2 O(f) f·g·h·k O(2n)
g·g O(k) O(O(h3)) O(h)
O(g) O(3·h) O(f·g) O(n2) O(O(f ·f)) O(n2)
O(3·k·h) O(f·g) O(3·k−k) O(n2)
h O(h3)
2