Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m307:learningunits:lu01:aufgaben:03 [2026/02/09 13:42] – angelegt - Externe Bearbeitung 127.0.0.1 | de:modul:m307:learningunits:lu01:aufgaben:03 [2026/02/10 09:02] (aktuell) – [Hinweise] vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU01.A03 - myBubbleSort ====== | ||
| + | ===== Rahmenbedingungen ===== | ||
| + | * Sozialform: Einzelarbeit | ||
| + | * Hilfsmittel: | ||
| + | * Zeit: 45 Minuten | ||
| + | * Erwartetes Resultat: JavaScript-File, | ||
| + | ===== 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, | ||
| + | * 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, | ||
| + | * 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, | ||
| + | * Verschwenden Sie keine Zeit in eine // | ||
| + | |||
| + | ===== 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, | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | 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 // | ||
| + | - Der Tausch-Zähler wird inkrementiert (hochgezählt), | ||
| + | - Der Schleifenzähler wird in der inneren Schleife gesetzt, sodass der die Anzahl Schleifen-Durchläufe mitzählt. | ||
| + | |||
| + | |||
| + | ==== Teilauftrag 4: Wahlweise Auf- oder absteigend sortiert ===== | ||
| + | Passen Sie Ihre Algorithmen so an, sodass die beim Funktionsaufruf festelegen können, ob auf oder absteigend sortiert werden muss. Dazu müssen Sie einen zusätzlichen Parameter mitgegen. | ||
| + | |||
| + | ===== Lösungen ===== | ||
| + | [[de: | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | [[https:// | ||