public static void quicksort(int[] A) {
quicksort(A, 0, A.length-1);
}
private static void quicksort(int[] A, int lo, int hi) {
if (lo >= hi) return;
int p = partition(A, lo,hi);
quicksort(A, lo, p-1);
quicksort(A, p+1, hi);
}
private static int partition(int[] A, int lo, int hi) {
int i = lo+1;
int j = hi;
while (i <= j) {
while (A[i] < A[lo]) {
i++;
if (i > hi) break;
}
while (A[j] > A[lo]) {
j--;
}
if (i <= j) {
swap(A, i, j);
i++;
j--;
}
}
swap(A, lo, j);
return j;
}
public static void swap(int[] A, int i, int j) {
int temp = A[j];
A[j] = A[i];
A[i] = temp;
}
Thursday, October 22, 2015
QuickSort in Java
Labels:
algorithms,
quicksort
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment