Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Algorithmen

How To's Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Quicksort

Quicksort ist ein schneller, rekursiver, nicht-stabiler Sortieralgorithmus, der nach dem Prinzip Teile und herrsche (engl. Divide and conquer) arbeitet.

Quicksort wählt ein Pivotelement? aus der zu sortierenden Liste aus und zerlegt die Liste in zwei Teillisten, eine untere, die alle Elemente kleiner und eine obere, die alle Elemente gleich oder größer dem Pivotelement enthält. Diese Teillisten werden rekursiv sortiert.

Beispiel

quicksort.java
  1. void tausche(int daten[], int a, int b) {
  2.         int temp = daten[a];
  3.         daten[a] = daten[b];
  4.         daten[b] = temp;
  5. }
  6.  
  7. int teile(int daten[], int links, int rechts) {
  8.         int index = links;
  9.         for (int zeiger = links; zeiger < rechts; zeiger++) {
  10.                 if (daten[zeiger] <= daten[rechts]) {
  11.                         tausche(daten, index, zeiger);
  12.                         index++;
  13.                 }
  14.         }
  15.         tausche(daten, index, rechts);
  16.         return index;
  17. }
  18.  
  19. void quicksort(int daten[], int links, int rechts) {
  20.         if (rechts > links) {
  21.                 int teiler = teile(daten, links, rechts);
  22.                 quicksort(daten, links, teiler - 1);
  23.                 quicksort(daten, teiler + 1, rechts);
  24.         }
  25. }
Zuletzt geändert am 28.09.2006 12:24 Uhr
  Impressum