You are on page 1of 1

public void QuickSort(int[] A, int izq, int der){

if(izq < der) {


int k = Particionar(A, izq, der);
QuickSort(A, izq, k);
QuickSort(A, k+1 , der);
}
}

private int Particionar(int[] aray, int izq, int der) {
int p = aray[izq];
int i = izq, j = der;
while (i < j) {
while (aray[i] > p && i < der) {
i++;
}
while (aray[j] <= p&& j > izq) {
j--;
}

if(i == izq && j == i){
QuickSort(aray, izq + 1, der);
}
if(i == der && j == i)
QuickSort(aray, izq, der - 1);

if (i < j) {
Swap(aray, i, j);
}
}
return j;
}

private void Swap(int[] A, int i, int j){
int aux = A[i];
A[i] = A[j];
A[j] = aux;
}

You might also like