Gruppenaufgaben
Gruppenaufgaben
Gruppenaufgaben
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Informatik Praktikum <strong>Gruppenaufgaben</strong> 11/26<br />
Aufgabe 5.13 Sortier-Algorithmus<br />
Implementieren Sie den Sortier-Algorithmus Bubblesort (http://de.wikipedia.org/wiki/Bubblesort)<br />
in einem C-Programm MySort.exe mit mehreren Modulen und Funktionen. Ihr Programm soll die zu<br />
sortierenden Daten per Zufallsgenerator erheben und die Menge der zu sortierenden Daten dabei als<br />
Kommandozeilenparameter einlesen. Ein zweiter Kommandozeilenparameter soll optional den<br />
Namen einer Datei enthalten, in der das Ergebnis zusätzlich zur Ausgabe auf dem Bildschirm<br />
gespeichert wird. Der Aufruf könnte so aussehen:<br />
> MySort 25 erg.txt<br />
Beim BubbleSort-Algorithmus werden immer zwei benachbarte Elemente miteinander verglichen. Ist<br />
das eine größer als das andere, werden die beiden Werte vertauscht. Ein kleines Beispiel dazu:<br />
Ausgangslage:<br />
19 5 32 8<br />
Erster Durchlauf<br />
19 5 32 8 >> 5 19 32 8<br />
5 19 32 8 >> 5 19 32 8<br />
5 19 32 8 >> 5 19 8 32<br />
Zweiter Durchlauf<br />
5 19 8 32 >> 5 19 8 32<br />
5 19 8 32 >> 5 8 19 32<br />
5 8 19 32 >> 5 8 19 32<br />
Bei jedem Durchlauf wird auch jedes einzelne Arrayelement mit dem nächsten verglichen. Pro<br />
Arrayelement läuft eine äußere und einer innere Schleife durch. In diesem Fall gäbe es hier vier<br />
äußere Schleifendurchläufe - in diesem Beispiel ist das Array nach zwei Durchläufen allerdings<br />
bereits korrekt sortiert. Man könnte mit entsprechenden Prüfungen nun das Sortieren abbrechen, für<br />
die "Grundversion" ist das aber erstmals unnötig.<br />
Der Quelltext soll aus mehreren Modulen und Funktionen aufgebaut sein. Fangen Sie alle<br />
möglichen Fehlerquellen ab.<br />
Zusatzaufgabe: Optimieren Sie die Laufzeit!