GnomSort

Aus ProgrammingWiki
Archivierte Version vom 2011-04-28T21:19:28+00:00. Aktuelle Version

Algorithmus

Gartenzwerge sortieren die in einer Reihe aufgestellten Blumentöpfe der Größe nach und benutzen dazu den folgenden Algorithmus:

  • Beginne links und vergleiche die beiden ersten Töpfe.
  • Stehen sie in der richtigen Reihenfolge gehe ein Schritt nach rechts.
  • Vertausche die beiden Töpfe, wenn sie nicht in der korrekten Reihenfolge stehen, und gehe einen Schritt nach links. Ist der Schritt nach links nicht möglich, bleibe beim ersten Topf stehen.
  • Wiederhole das Sortieren bis zum letzten Blumentopf.

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

Ungeordnete Zufallszahlen:

Ihr Browser unterstützt Canvas nicht.
 

Geordnete Zufallszahlen:

Ihr Browser unterstützt Canvas nicht.

Hinweis: Um mehrere Zeichenflächen nutzen zu können, muss die Prozedur balkendiagramm mit einem zusätzlichen Parameter ausgestattet werden, der einer fortlaufenden Nummerierung entspricht:

(balkendiagramm
  <ls>       ; Liste mit Zahlenwerten   
  <nr>)      ; fortlaufende Nummerierung des Balkendiagramms

Effizienz von GnomSort

Wir definieren unseren GnomSort-Algorithmus mit einem "eingebauten" (Zeittakt-)Zähler:

Im Weiteren wollen wir uns nur auf die Zählergebnisse unseres "Zeittaktmessers" konzentrieren.
Dazu sollen die Wiederholungen des Experimentes automatisiert werden:

Schließlich sollen die Ergebnisse unserer empirischen Untersuchung wieder im Balkendiagramm visualisiert werden.

Achtung! Mit kleinen Wiederholraten und etwas Geduld experimentieren!

Ihr Browser unterstützt Canvas nicht.

Die empirischen Untersuchungen zeigen offensichtlich einen quadratischen Zeitaufwand von GnomSort.