Prof. Dr. R. Schrader SS 2002 Ch. Hagemeier
4. ¨ Ubung zur Informatik I
Abgabe: 14. und 15.5.2002 in den ¨Ubungen
Aufgabe 11: (4+4 Punkte)
a) Bauen Sie mit h¨ochstens 12 Vergleichen einen Maximumsheap aus folgenden Zahlen auf:
9,13,25,4,7,18,1,20,10
Die Zahlen stehen nur in der angegebenen Reihenfolge zur Verf¨ugung. Verdeutli- chen Sie den Aufbau durch Bilder zu geeigneten Phasen, und geben Sie jeweils die ben¨otigten Schl¨usselvergleiche an.
b) Sortieren Sie die obigen Zahlen mit Hilfe von Heapsort, zeichnen Sie Bilder zu den einzelnen Schritten.
Aufgabe 12: (5 Punkte)
Beschreiben Sie einen Algorithmus, mit dem man k aufsteigend sortierte Listen zu ei- ner aufsteigend sortierten Liste verschmelzen kann. Das Verfahren soll eine Laufzeit von O(nlogk) haben, dabei sein die Gesamtzahl der Elemente in allen Inputlisten. Begr¨unden Sie die Laufzeit Ihres Verfahrens.
Bitte beachten Sie: F¨ur diese wie auch f¨ur alle anderen Aufgaben gilt, daß Sie Ihre L¨osung nicht bloß angeben, sondern auch hinreichend erkl¨aren m¨ussen.
Aufgabe 13: (4+6 Punkte)
a) Entwerfen Sie einen Algorithmus SELECT(M, i), der, basierend auf der Idee von Quicksort, das i-t kleinste Element einer Menge M von n paarweise verschiedenen nat¨urlichen Zahlen bestimmt (1 ≤ i ≤ n). Bestimmen Sie die worst-case Laufzeit dieses Verfahrens.
b) Man kann zeigen, daß die average-case LaufzeitTav(n) des oben skizzierten Verfah- rens linear ist. Dabei gehen wir davon aus, daß alle Elemente der Menge paarweise verschieden und alle Permutationen gleichwahrscheinlich sind. Tav(n, i) sei die mitt- lere Laufzeit von SELECT(M, i). Stellen Sie zun¨achst eine Rekursions(un-)gleichung f¨ur Tav(n, i) auf, vereinfachen Sie sodann diese Ungleichung durch Absch¨atzung ge- gen Tav(n) := maxiTav(n, i), und weisen Sie dann induktiv nach, daß T(n) = O(n) gilt.
Organisatorisches:
• Bitte achten Sie darauf, daß Sie wenn m¨oglich Ihre ¨Ubungen zu zweit bearbeiten und dann zusammen nur eine L¨osung abgeben. Der Korrekturaufwand wird so drastisch reduziert.
• Es gibt jetzte eine Mailingliste zur Vorlesung Informatik I. Unter der folgenden Adresse k¨onnen Sie sich zu der Liste anmelden:
http://www.zpr.uni-koeln.de/mailman/listinfo/info1
Fragen, die das Verst¨andnis der ¨Ubungs- oder Programmieraufgaben betreffen, ver- suchen Sie bitte als erstes in diesem Rahmen zu kl¨aren.
• Falls Sie beim Bearbeiten der Programmieraufgaben feststellen, daß Sie die Pro- grammiersprache C++nicht hinreichend gut beherrschen, k¨onnen Sie per Mail an hagemeier@zpr.uni-koeln.de eine Einf¨uhrung im PDF-Format bekommen. Bitte geben Sie diese Einf¨uhrung nicht weiter, da der Verlag nur ausnahmsweise diese an- sonsten kostenpflichtige Einf¨uhrung f¨ur den Rahmen dieser Vorlesung zur Verf¨ugung gestellt hat!
• Es wird erneut darauf hingewiesen, daß Sie in den Programmieraufgaben aus- schließlich solche C++-Befehle verwenden d¨urfen, die im ANSI-C++-Standard fest- geschrieben sind. Im Allgemeinen handelt es sich dabei um alle Befehle, die in nicht compilerspezifischer Literatur zu C++ angegeben ist. Insbesondere wird darauf hin- gewiesen, daß somit die Verwendung jeglicher compiler- oder betriebssystemspezifi- scher Befehle oder Erweiterungen untersagt ist.