31.2.2 Implementierung
 
Download:
Sortieren. java
In der Klasse Sortieren, die wir im letzten Kapitel '13.1 Sortieren durch Einfügen' implementieren wir die öffentliche Methode quickSort(int[] liste) und die private Methode  quickSort(int[] liste, int untereGrenze, int obere Grenze). Die zweite führt den eigentlichen Algorithmus durch. Sie wird nur von quickSort(int[] liste) aufgerufen und ist deshalb privat.
public static void quickSort(int[] liste){
  int untereGrenze = 0;
  int obereGrenze = liste.length-1;
  quickSort(liste, untereGrenze,obereGrenze);
}

private static void quickSort(int[] liste, 
                              int untereGrenze, 
                              int obereGrenze) {
  int links = untereGrenze;
  int rechts = obereGrenze;
  int pivot = liste[((untereGrenze + obereGrenze) / 2)];
  do {
    while (liste[links] < pivot) {
      links++;
    }
    while (pivot < liste[rechts]) {
      rechts--;
    }
    if (links <= rechts) {
      int tmp = liste[links];
      liste[links] = liste[rechts];
      liste[rechts] = tmp;
      links++;
      rechts--;
    }
  } while (links <= rechts);
  if (untereGrenze < rechts) {
     liste = quickSort(liste, untereGrenze, rechts);
  }
  if (links < obereGrenze) {
     liste = quickSort(liste, links, obereGrenze);
  }
}
Download:
SortierenDemo. java
Die schon für das Sortieren durch Einfügen benutzte Demoklasse können wir auch hier benutzen. Wir müssen lediglich die Aufruf der Methode

Sortieren.einfuegen(liste);

durch

Sortieren.quickSort(liste);

zu ersetzen.

zu 31.2.3 Übungen (BubbleSort)
zur Startseite www.pohlig.de  (C) MPohlig 2004