Die Aufgabe
Aufgabe 8.1
a) Schreiben Sie ein Programm A8_1a, das die Elemente eines Integer-Arrays a der Größe nach aufsteigend sortiert! Verwenden Sie den Algorithmus „Sortieren durch Vertauschen“, wie er in der Vorlesung besprochen wurde.
b) Variieren Sie das Programm A8_1a derart (neuer Name: A8_1b), dass die Zahlen absteigend sortiert werden.
Hinweis: Der einfachste Ansatz wäre, das Array gemäß Teilaufgabe a) aufsteigend zu sortieren und anschließend zu spiegeln. Im Rahmen der vorliegenden Aufgabe sollen Sie allerdings den Sortieralgorithmus im Kern anpassen.
Gegeben ist ein Array mit ganzen Zahlen. Das Programm soll die Zahlen so umstellen, dass sie in a) von klein nach groß und in b) von groß nach klein dastehen. Welche Zahlen im Array stehen, sagt die Aufgabe nicht. Wir nehmen das Beispiel der Vorlesung, Folie 5-64: 23 14 45 7 31 16.
Welches Verfahren? Das Skript zeigt auf Folie 5-64 nur die Aufgabe und den Methodenkopf, nicht den Algorithmus. Unter dem Namen „Sortieren durch Vertauschen“ laufen zwei Varianten: Entweder vergleicht man immer zwei benachbarte Zahlen (auch Bubblesort genannt, englisch bubble = Blase), oder man vergleicht Platz i mit allen späteren Plätzen. Wir nehmen die Nachbarn; die andere Variante ist ebenso richtig.
- Das Array anlegen.
- Zwei Nachbarn vergleichen.
- Zwei Werte vertauschen, mit einer Hilfsvariablen.
- Ein ganzer Durchlauf mit einer Schleife.
- Weitere Durchläufe mit einer zweiten, äußeren Schleife.
- Ausgeben und laufen lassen.
- b) Für absteigend nur den Vergleich umdrehen.