Allgemeine Informatik II SoSe 2001
Prof. Dr. H. Neumann $\bullet$ Dr. K. Murmann $\bullet$ S. Geschwentner $\bullet$ Dr. F. Schwenker

8. Aufgabenblatt (bis zum 12.07.2001)




15. Aufgabe:
In der Vorlesung wurden verschiedene elementare Sortierverfahren vorgestellt. Eine Variante des Bubblesort ist der Shakersort (in Pseudosprache).


procedure shakersort(array, size)

begin
   repeat
      Blasen aufsteigen lassen (* d.h einmal von links nach rechts gehen *)
      Blasen absteigen lassen  (* d.h einmal von rechts nach links gehen *)
   until sortiert
end

Machen Sie sich mit dem Algorithmus vertraut! Hierbei sei size die Anzahl der Elemente in der Folge. Die gespeicherten numerischen Werte des Feldes dienen als Sortierschlüssel.

  1. Implementieren Sie den ShakerSort in Modula 2, so dass aufsteigend sortiert wird. Testen Sie Ihr Programm mit der zu sortierenden Zahlenfolge

    array = (44, 55, 12, 42, 94, 18, 6, 67)

    Nach jedem Durchlauf der REPEAT-Schleife geben Sie bitte die aktuelle Anordnung der im Feld array gespeicherten Zahlen, sowie den Bereich, welcher noch zu sortieren ist, aus.

  2. Der oben beschriebene Algorithmus sortiert aufsteigend. Erweitern Sie ihre Implementation des ShakerSort nun so, dass er auch absteigend sortieren kann. Hinweis: Vergleichsprozedur als Parameter übergeben!




Stefan Geschwentner
2001-07-04