Gnomesort

Aus SibiWiki
Zur Navigation springen Zur Suche springen

Gnomesort ist ein einfacher und Stabiler Sortieralgorithmus, der Ähnlichkeiten mit Bubblesort aufweist.

Funktionsweise

Man beginnt bei den ersten-index und vergleicht es mit den nullten-index, falls der erste-index größer/gleich den nullten-index ist, dann geht er weiter und vergleicht den zweiten-index mit den ersten-index, falls der erste-index kleiner ist als der nullte-index, dann werden sie vertauscht und man geht ein Schritt zurück. Falls man den nullten-index erreicht hat, dann setzt man den Index auf eins. Das ganze wird solange wiederholt, bis man den letzten Index erreicht hat.

Laufzeit

TODO

Einsatz von Gnomesort in Java

Aufruf in der Main-Methode

Gnomesort gnome = new Gnomesort();
gnome.Gnomesort(Datentyp);
System.out.print(Arrays.toString(Datentyp));

Sortieren von Zahlen

public void Gnomesort(int[] zahl) {
   for (int index = 1; index < zahl.length;) {
      if (zahl[index - 1] <= zahl[index]) {
         index++;
      } else {
         int hilfs = zahl[index];
         zahl[index] = zahl[index - 1];
         zahl[index - 1] = hilfs;
         index--;
         if (index == 0) {
            index = 1;
         }
      }
   }
}

Sortieren von Strings

private void Gnomesort(String[] text) {
   for (int index = 1; index < text.length;) {
      if (text[index - 1].compareTo(text[index]) <= 0) {
         index++;
      } else {
         String hilfs = text[index];
         text[index] = text[index - 1];
         text[index - 1] = hilfs;
         index--;
         if (index == 0) {
            index = 1;
         }
      }
   }
}