Grundkurs Informatik Aufgabensammlung mit Lösungen Teil 3
Grundkurs Informatik Aufgabensammlung mit Lösungen Teil 3
Grundkurs Informatik Aufgabensammlung mit Lösungen Teil 3
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3-28 Aufgaben und <strong>Lösungen</strong><br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
11.5 Höhere Sortierverfahren<br />
Aufgabe 11.5.1 (T1)<br />
a) Was bedeutet die Aussage, dass der Quick-Sort entarten kann?<br />
b) Welches Sortierverfahren benötigt die geringste Anzahl von Schlüsselvergleichen?<br />
Aufgabe 11.5.2 (P2)<br />
Modifizieren Sie die im Text angegebene Funktion quicksort(..) so, dass<br />
sie dasselbe Interface erhält, wie die in der C-Bibliothek enthaltene Funktion qsort(..).<br />
Also int quicksort(void *a, int n, size_t w, int (*cmp)())<br />
Vergleichen Sie die Performance Ihres Programm <strong>mit</strong> der C-Funktion qsort(..).<br />
Aufgabe 11.5.3 (P2)<br />
Schreiben Sie unter Verwendung der C-Funktion qsort() ein Programm zum Sortieren<br />
eines Feldes von Zeigern, die auf Strings deuten. Die Strings sollen dabei in absteigender<br />
Reihenfolge lexikografisch sortiert werden, also c vor b vor a etc.<br />
Aufgabe 11.5.4 (M2)<br />
Ein Test habe ergeben, dass in Abhängigkeit von der Anzahl n der Daten für das Sortieren<br />
von Integer-Arrays <strong>mit</strong> dem Insertion-Sort auf einer bestimmten Maschine ti=2.8⋅n 2 ⋅10 -5 Sekunden<br />
benötigt werden. Mit dem Quick-Sort benötigt man tq=1.4n⋅ld(n)⋅10 -4 Sekunden. Von<br />
welchem n ab ist der Quick-Sort schneller als der Insertion-Sort?<br />
Lösung<br />
2.8⋅n 2 ⋅10 -5 =1.4n⋅ld(n)⋅10 -4 ist nach n aufzulösen. Es folgt:<br />
0.2⋅n=ld(n) und 2 0.2n =n<br />
Wertetabelle:<br />
n 2 0.2n<br />
10 2 2 =4<br />
20 2 4 =16<br />
22 2 4.4 ≈21.1<br />
23 2 4.6 ≈24.25 ab n=23 ist der Quick-Sort schneller