Universität Ulm - Abteilung Angewandte Informationsverarbeitung
Ihr Kumpel aus dem Sandkasten (der ohne Abitur!) leitet inzwischen die größte Unternehmensberaterfirma in Ihrer Heimatstadt, während Sie mühsam ihr Bafög (wird wieder nicht erhöht!) in den Kneipen durchbringen (,,Studieren``). Nur eines haben Sie Ihrem Kumpel voraus: Intelligenz!
Und nachdem er gehört hat, dass alle zur Zeit auf Customer Relationship
Management schwören, beauftragt er Sie, seine Karteikartensammlung mal
ein bißchen auf Vordermann zu bringen. Denn merke: Oft macht man 20% des
Umsatzes mit 3% der Kunden... Nur wer sind diese Kunden bzw. Firmen
(,,Cash Cows``)?
Da Sie sich bestens mit Sortieralgorithmen auskennen
(www.sortieralgorithmen.de) schlagen Sie Ihrem Kumpel
(Tutor!?) vor, die Sammlung mit Hilfe von Quicksort zu
sortieren und erklären Ihm die Funktionsweise sowie
die Vor- und Nachteile dieses Algorithmus!
Leider ist Ihr Kumpel ein begeisterter Anhänger von Shakersort und bittet Sie daher ein Oberon-Programm zu schreiben, mit dem die Firmendaten von der Tastatur eingelesen und mit Hilfe von SHAKERSORT nach Name, Branche und Umsatz sortiert werden können.
Helfen Sie Ihrem Kumpel, indem Sie eine entsprechende Datenstruktur
implementieren (Array of Records zur Verwaltung der Firmendaten) und
das Sortierproblem mit Hilfe von Prozedurentypen lösen.
Tips:
Funktionsweise von Shakersort:
Ein Feld wird einmal vollständig von links nach rechts durchlaufen.
Dabei werden die jeweiligen Nachbarelemente miteinander verglichen
und ggf. ausgetauscht. Am Ende befindet sich das größte Element am
Ende des Feldes. Nun wird das kleinere Teilfeld (ohne das letzte
Element) wieder vollständig durchlaufen, aber diesmal von rechts
nach links. Dabei werden die jeweiligen Nachbarelemente wieder
miteinander verglichen und ggf. ausgetauscht. Am Ende befindet
sich das kleinste Element am Anfang des Feldes. Dieser Schritt
wird nun mit dem kleineren Teilfeld (Feld ohne das erste und
letzte Element) wiederholt und wiederholt und ... Und irgendwann
sind wir fertig und die Elemente sind sortiert.
Beispiel:
05 37 13 21 02 13 Feld komplett durchlaufen 05 13 21 02 13 | 37 Feld außer letztes Element durchlaufen 02 | 05 13 21 13 | 37 Feld außer erstes und letztes Element... 02 | 05 13 13 | 21 37 02 05 | 13 13 | 21 37 02 05 | 13 | 13 21 37 02 05 13 || 13 21 37 Feld ist sortiert
Viel Erfolg!