28.2.2 Implementierung
 
Download:
Sortieren. java
In der Klasse Sortieren, die wir im letzten Kapitel '28.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){

  quickSort(liste, 0, liste.length-1);

}



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

  }

}
  Da bei einigen Sortieralgorithmen das Vertauschen von Elementen einer Liste vorkommt, implementieren wir in der Klasse Sortieren eine Methode
 
public class Sortieren{  
  private static int tmp;

  

  /*Hilfsmethoden*/

  /*Vertauscht zwei int-Elemente*/

  private static void tausche(int[] liste, int x, int y) {

    tmp = liste[x];

    liste[x] = liste[y];

    liste[y] = tmp;

  }

  ...

}

  Der im obigen Quelltext gelb unterlegte Kode wird dann durch den Aufruf
   tausche(liste, links, rechts);
ersetzt.
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 28.2.3 Übungen (BubbleSort)
zur Startseite www.pohlig.de  (C) MPohlig 2006