Array
Aufgabe “Array”:
a) Schreiben Sie ein Programm, welches ein Array mit 100 Elementen mit Zufallszahlen im Bereich von 1 bis 1000 initialisiert.
Hinweis: Definieren Sie das Array global.
b) Suchen Sie das kleinste Element und geben Sie es aus.
c) Schreiben Sie eine Suchfunktion, welche das kleinste Element in einem bestimmten Bereich sucht. Die Angabe des Suchbereichs (linker und rechter Index) erlaubt die folgende Signatur:
d) Geben Sie in der Suchfunktion anstelle des kleinsten gefundenen Wertes den Index desselben zurück.
e) Schreiben Sie eine Funktion, welche zwei Array-Elemente vertauscht.
Parametrisieren Sie die Funktion durch die zwei Indizes der zu vertauschenden Elemente:
f) Sortieren Sie das Array, indem Sie das kleinste Element mit der Suchfunktion ermitteln. Verschieben Sie das gefundene kleinste Element an die richtige Position am Feldanfang (Index 0), indem Sie eine entsprechende Elementvertauschung vornehmen. Wiederholen Sie die Suche nach dem jeweils kleinsten i-ten Element auf dem verbleibenden Suchbereich [i,99] und verschieben Sie das Element an die i-te Position im Feld, bis alle Elemente sortiert sind.
Hinweis: Die erste Elementvertauschung ergibt sich mit Hilfe der obigen Funktionen wie folgt:
g) Geben Sie das mittlere Element (Median) des sortierten Arrays aus (Index=50).
Bemerkung: Dieser Sortier-Algorithmus ist unter dem Namen Bubble-Sort bekannt.
Hinweis: Denken Sie daran modularisiert zu programmieren, d.h. mindestens ein Haupt-Modul und ein (oder mehrere) Funktionsmodule.
Q Was für ein Laufzeitverhalten hat das Programm theoretisch und praktisch, wenn man die Anzahl der Elemente verdoppelt, also z.B. von 1000 auf 2000 Elemente?