GnomSort
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: |
Geordnete Zufallszahlen: |
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!
Die empirischen Untersuchungen zeigen offensichtlich einen quadratischen Zeitaufwand von GnomSort.