LU01.A03 - myBubbleSort

Rahmenbedingungen

Hinweise

Wichtig bei der Umsetzung Ihrer Lösung ist, dass sie nach best-practise programmieren. Konkret heisst das:

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.

Studyflix: Bubblesort

Bubblesort-Aufgabe

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.

Bubblesort Variante 1 - Statisch

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.

Variante 2 mit Fertig-Flag

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.

  1. Der Tausch-Zähler wird inkrementiert (hochgezählt), sobald zwei Zahlen vertauscht werden mussten, weil Sie in der falschen Reihenfolge vorlagen.
  2. 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

LU01.L03


Volkan Demir