Dies ist eine alte Version des Dokuments!
LU01.A03 - myBubbleSort
Rahmenbedingungen
- Sozialform: Einzelarbeit
- Hilfsmittel: Openbooks
- Zeit: 45 Minuten
- Erwartetes Resultat: JavaScript-File, das eine Reihe von Zahlen und Buchstaben der Reihen nach, aufsteigend oder absteigend, sortieren kann.
Hinweise
Wichtig bei der Umsetzung Ihrer Lösung ist, dass sie nach best-practise programmieren. Konkret heisst das:
- Ihr Script, sowie die verwendeten Subroutinen (Funktionen, Methoden) müssen ei-nen Header haben: Autor, Datum, Angaben zur Input-, und Output-Parameter, eine kurze Beschreibung zum Verhalten der Funktion.
- Bei fehlenden Parametern wird die eingebende Person entsprechend über das HTML-Formular oder der Kommandozeile informiert.
- Verwenden Sie die unbedingt die passenden Datentypen (primitive oder komplexe).
- Verwenden Sie keine JS-Bibliotheken, sondern programmieren Sie alle relevanten Funktionen selbst. Letztendlich ist das das eigentliche Ziel dieser Übung.
- Aus Gründen der Datenkapselung und der umsichtigen Programmierung realisieren sie Ihre Funktionen ausschliesslich mit Inputparameter und Return-Values. Es wird also möglichst nicht auf globale Werte innerhalb der Methoden zugegriffen.
- Die für die Berechnung benötigten Werte können über Commandline, als Variable oder über ein simples HTML-Formular eingegeben werden. Verschwenden Sie keine Zeit in eine „schöne“ Oberflächengestaltung, weil es aktuell um Programmie-rung und nicht um Gestaltung geht.
Auftrag
Sortierungen finden wir überall in unserem Alltag. Beispielsweise sind unsere Kontakte alphabetisch sortiert, in der Regel aufsteigend. Der BubbleSort-Algorithmus ist ein solcher Sortieralgorithmus, der sehr gut zu Schulungszwecken verwendet werden kann.
Nachfolgend finden Sie die Struktogramme von zwei Varianten des Sortier-Algorithmus
Teilauftrag 1: Statisch
In zwei FOR-Schleifen wird ein unsortiertes Array eine feste Anzahl mal durchlaufen. Die Anzahl der Schleifendurchlaeufe ist abhaengig von der Anzahl unsortierter Array-Elemente.
Teilauftrag 2: Flag
Variante 2 arbeitet intelligenter als die Variante 1. Mittels eines Flag (Ampel) wird bei jedem Durchlauf des Arrays ermittelt, ob die korrekte Sortierung vorliegt. Falls nicht wird ein weiterer Durchlauf gestartet.
Teilauftrag 3: Benchmarking
Um die Effizienz der Vertauschungen beider Varianten miteinander vergleichen zu können, brauchen wir eine Art Benchmarking, also einen Tausch- und einen Schleifen-Zähler, welche an der passenden Stelle im Code eingefügt werden müssen.
- Der Tausch-Zähler wird inkrementiert (hochgezählt), sobald zwei Zahlen vertauscht werden mussten, weil Sie in der falschen Reihenfolge vorlagen.
- Der Schleifenzähler wird in der inneren Schleife gesetzt, sodass der die Anzahl Schleifen-Durchläufe mitzählt.


