Informatik Bachelor 1. Semester WS 2014/15 Prof. Dr. Wolfgang Schramm Algorithmen und Datenstrukturen (ADS)
Übungsblatt 4 Ausgabe: 15.11.2014 1
Übungsblatt 4
Ausgabe: 15.11.2014Abgabe: 28.11.2014
Hinweise: -‐ Die Abnahme der Übungen gilt als Prüfungsleistung. Bei einer Verhinderung durch Krankheit ist eine ärztliche Bescheinigung der Arbeitsunfähigkeit vorzu-‐
legen.
-‐ Zur Abnahme müssen die Ergebnisse (Pseudocode, Stichpunkte) – soweit nichts anderes angegeben ist – schriftlich (ausgedruckt) vorliegen.
Aufgabe 1: Mergesort-‐Programmieraufgabe 90 Punkte
In der Vorlesung wurden 2 Varianten des Mergesort-‐Algorithmus angegeben.
Schreiben Sie ein Programm, mit mindestens 1 Methode zum externen Sortieren entweder per natürlichem Mergesort, oder per direktem Mergesort.
Überlegen Sie genau, welche Parameter die Methode bekommen sollen.
Es bietet sich an, für die Vorgänge split und merge jeweils eigene Methoden mit geeigneten Parametern zu schreiben.
Die zu sortierenden Elemente werden von einer Datei (Band) eingelesen. Es wird in mehreren Schritten, unter Zuhilfenahme von 2 weiteren Dateien (Bändern) sortiert. Am Schluss stehen die Elemente sortiert auf der Ausgangsdatei. Verwenden sie dazu die Dateioperationen, die sie in GDI kennen gelernt haben.
Schreiben Sie eine weitere Methode printtape oder printruns, welche ein Band (d.h eine Datei) in geeigneter Form (mit Kennzeichnung der runs) ausgibt, um einzelne Arbeits-‐
schritte zu protokollieren. Überlegen sie auch hier, welche Parameter sie brauchen, um die Methode möglichst universell zu nutzen.
Das Programm soll den Namen der zu sortierenden Datei einlesen und diese Datei dann sortieren. Damit keine Überraschungen passieren, müssen Sie prüfen, ob die Datei auch existiert.
Die zu sortierenden Dateien werden auf der Wiki-‐Seite zur Vorlesung zur Verfügung gestellt.
Übungsblatt Ausgabe: 15.11.2014
2
Aufgabe 3: Quicksort – Programmieraufgabe 30 Punkte
In der Vorlesung wurden 3 Varianten des Quicksort-‐Algorithmus angegeben.
Implementieren Sie die dritte Variante von Quicksort.
Protokollieren Sie die Arbeitsschritte und den Aufwand wie in den Aufgaben des dritten Übungsblattes.
Aufgabe 3: Shell-‐Sort-‐Programmieraufgabe Zusatzaufgabe 40 Punkte
In der Vorlesung wurde der Shell-‐Sort vorgestellt. Der Shell-‐Sort ist gewissermaßen ein Inser-‐
tion-‐Sort über größere Distanzen.
Schreiben sie ein Programm mit einer Methode ShellSort. Als Folge der h-‐Sortierung sind die Werte 9 7 4 1 fest vorzugeben.
Protokollieren Sie die Arbeitsschritte und den Aufwand wie in den Aufgaben des dritten Übungsblattes.