Slowsort: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
 
Zeile 8: Zeile 8:
==Einsatz von Slowsort in Java==
==Einsatz von Slowsort in Java==
===Aufruf in der Main-Methode===
===Aufruf in der Main-Methode===
<code>
<code>
  Slowsort slow = new Slowsort();
  Slowsort slow = new Slowsort();
  slow.Slowsort('''Datentyp''', '''Anfang''', '''Ende''');
  slow.Slowsort('''Datentyp''', '''Anfang''', '''Ende''');
  System.out.print(Arrays.toString('''Datentyp'''));
  System.out.print(Arrays.toString('''Datentyp'''));
</code>
</code>
=== Sortieren von Zahlen ===
=== Sortieren von Zahlen ===
<code>
<code>
  private void Slowsort(int[] zahl, int i, int j) {
  private void Slowsort(int[] zahl, int i, int j) {
     if (i >= j) {
     if (i >= j) {
Zeile 29: Zeile 29:
     Slowsort(zahl, i, j - 1);
     Slowsort(zahl, i, j - 1);
  }
  }
</code>
</code>
=== Sortieren von Strings ===
=== Sortieren von Strings ===
<code>
<code>
  private void Slowsort(String[] text, int i, int j) {
  private void Slowsort(String[] text, int i, int j) {
     if (i >= j) {
     if (i >= j) {
Zeile 46: Zeile 46:
     Slowsort(text, i, j - 1);
     Slowsort(text, i, j - 1);
  }
  }
</code>
</code>

Aktuelle Version vom 23. Januar 2022, 18:16 Uhr

Slowsort ist ein langsamer, rekursiver Sortieralgorithmus. Es ist eine Quicksort Parodie und wurde um 1986 veröffentlicht.

Laufzeit

TODO

Einsatz von Slowsort in Java

Aufruf in der Main-Methode


Slowsort slow = new Slowsort();
slow.Slowsort(Datentyp, Anfang, Ende);
System.out.print(Arrays.toString(Datentyp));

Sortieren von Zahlen


private void Slowsort(int[] zahl, int i, int j) {
   if (i >= j) {
      return;
   }
   int m = (i + j) / 2;
   Slowsort(zahl, i, m);
   Slowsort(zahl, m + 1, j);
   if (zahl[j] < zahl[m]) {
      int hilfs = zahl[j];
      zahl[j] = zahl[m];
      zahl[m] = hilfs;
   }
   Slowsort(zahl, i, j - 1);
}

Sortieren von Strings


private void Slowsort(String[] text, int i, int j) {
   if (i >= j) {
      return;
   }
   int m = (i + j) / 2;
   Slowsort(text, i, m);
   Slowsort(text, m + 1, j);
   if (text[j].compareTo(text[m])<0) {
      String hilfs = text[j];
      text[j] = text[m];
      text[m] = hilfs;
   }
   Slowsort(text, i, j - 1);
}