GnomeSort

Aus ProgrammingWiki
Archivierte Version vom 2019-01-20T15:23:01+00:00. Aktuelle Version
Gartenzwerg_Blumentopf1.JPG
GnomeSort - los geht's!

Algorithmus

In einem Garten sind Bumentöpfe in einer Reihe aufgestellt. Gartenzwerge sollen sie nun der Größe nach aufsteigend sortieren. Sie benutzen dazu den folgenden Algorithmus:

  • Beginne links und vergleiche die beiden ersten Töpfe.
  • Wenn sie nicht in der korrekten Reihenfolge stehen, vertausche die beiden Töpfe und gehe einen Schritt nach links.

    Ist der Schritt nach links nicht möglich, gehe einen Schritt nach rechts.

  • Gehe auch in jedem anderen Fall einen Schritt nach rechts.
  • Wiederhole diesen Vergleich benachbarter Töpfe bis zum letzten Blumentopf.

Die Größe der Blumentöpfe wird mit Zufallszahlen festgelegt:

Auf die explizite Ausgabe unsortierter bzw. sortierter Datenfelder wollen wir im Weiteren verzichten. Uns soll die Visualisierung im Balkendiagramm genügen.

Ungeordnete Zufallszahlen:

Ihr Browser unterstützt Canvas nicht.
 

Geordnete Zufallszahlen:

Ihr Browser unterstützt Canvas nicht.

Aufwandsbetrachtungen

Empirische Untersuchungen

Wir wollen hier stark vereinfacht annehmen, dass jeder Vergleich zweier benachbarter Feldelemente, ihr möglicher Tausch sowie das Weiterrücken nach links bzw. rechts je einem Zeittakt entsprechen.
Diese Zeittakte werden wieder in Abhängigkeit der Anzahl der zu sortierenden Feldelemente ermittelt.

Auch hier soll der Mittelwert aus Mehrfachanwendungen der Funktion sortAufwand ermittelt werden:

Zurück zu BubbleSort.