Gnomesort: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:Sortierverfahren Kategorie:Informatik '''Gnomesort''' ist ein einfacher und Stabiler Sortieralgorithmus, der Ähnlichkeiten mit [[Bubblesort]…“)
 
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 8: Zeile 8:


==Einsatz von Gnomesort in Java==
==Einsatz von Gnomesort in Java==
=== Aufruf in der Main-Methode ===
<code>
Gnomesort gnome = new Gnomesort();
gnome.Gnomesort('''Datentyp''');
System.out.print(Arrays.toString('''Datentyp'''));
</code>
=== Sortieren von Zahlen ===
=== Sortieren von Zahlen ===
<code>
<code>
Zeile 33: Zeile 39:
           index++;
           index++;
       } else {
       } else {
           String tempVal = text[index];
           String hilfs = text[index];
           text[index] = text[index - 1];
           text[index] = text[index - 1];
           text[index - 1] = tempVal;
           text[index - 1] = hilfs;
           index--;
           index--;
           if (index == 0) {
           if (index == 0) {

Aktuelle Version vom 12. April 2013, 10:36 Uhr

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;
         }
      }
   }
}