Prof. Dr. R. Laue                                                                                                                                  SS00
                                Informatik II
                                Übungsblatt 3
                                Abgabe: 25.05.00 bis 10.00 Uhr

URL:         /axel/informatik2_ss00_blatt3.html

Die Programmieraufgaben sind alleine zu bearbeiten, die anderen Aufgaben können in Zweiergruppen bearbeitet werden.

Aufgabe 5 (10 Programmierpunkte - Abgabe per email bis 25.5.00 10.00 Uhr)
Schreiben Sie eine C Funktion mit dem Namen my_qsort_matrikelnummer(), welche ein int-feld  mit der Quicksortvariante von Sedgewick sortiert.
Die Deklaration der Funktion ist:

int my_qsort_matrikelnummer(int *feld, int feld_laenge)

Der zweite Parameter ist die Anzahl der Einträge im zu sortierenden Feld. Beim Namen der Routine ist matrikelnummer durch eine Ihrer Matrikelnummern zu ersetzen. Folgendes C Programm, bzw deren main-routine, soll nach Anpassung der Matrikelnummer als Testfunktion verwendet werden können.

Der erste Aufruf von ...000000 soll ersetzt werden durch den Aufruf Ihrer Routine. Im  Beispiel wurde die Systemfunktion times() verwendet, mit ihr kann die bisherige Rechenzeit festgestellt werden. Am Ende wird mit der Systemfunktion memcmp() getestet ob die sortierten Felder identisch sind. Die Verwendung von times() geht nur auf UNIX Rechnern. Will man unter Windows arbeiten, so sollte man sich die Funktion clock() anschauen.
 

Aufgabe 6 (3 + 3 + 2 Punkte)
a) Man berechne die Wahrscheinlichkeit, daß beim Sortieren eine Feldes der Länge n mit Quicksort die maximale Anzahl von Vergleichen nötig ist. (worst case)
b) Man berechne die Wahrscheinlichkeit, daß beim Sortieren eine Feldes der Länge n mit Quicksort die minimale Anzahl von Vergleichen nötig ist.
c) Gebe für jedes n eine Folge der Zahlen 1....n an, bei der die minimale Anzahl von Vergleichen benötigt wird.