Zum Inhalt
Java Beispiel 1
Aus ProgrammingWiki
<
Divide and Conquer 1
Quicksort in Java (
Quelle
):
int[] numbers; int number; void quicksort (int[] values) { numbers = values; number = values.length; quicksorting(0, number - 1); for(int i=0; i < numbers.length; i++) System.out.print(numbers[i]+ (i < numbers.length-1 ? "," : "")); } void quicksorting (int low, int high) { int i = low, j = high; // Get the pivot element from the middle of the list int pivot = numbers[(low + high) / 2]; // Divide into two lists while (i <= j) { // If the current value from the left list is smaller then the pivot // element then get the next element from the left list while (numbers[i] < pivot) { i++; } // If the current value from the right list is larger then the pivot // element then get the next element from the right list while (numbers[j] > pivot) { j--; } // If we have found a values in the left list which is larger then // the pivot element and if we have found a value in the right list // which is smaller then the pivot element then we exchange the // values. // As we are done we can increase i and j if (i <= j) { exchange(i, j); i++; j--; } } // Recursion if (low < j) quicksorting(low, j); if (i < high) quicksorting(i, high); } void exchange(int i, int j) { int temp = numbers[i]; numbers[i] = numbers[j]; numbers[j] = temp; }
quicksort(new int[] {1,42,5,23,6,34});
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten