Está en la página 1de 1

Algoritmo: for(i=0; i < n-1; i++){ for(j=0; j < n-1; j++){ if(vec[j] > vec[j+1]){ aux=vec[j]; vec[j]=vec[j+1]; vec[j+1]=aux;}

Complejidad T(n2) T(n) T(1) T(1) T(1)

public static void quicksort(int A[], int izq, int der) { int int int int pivote=A[izq]; // tomamos primer elemento como pivote i=izq; // i realiza la bsqueda de izquierda a derecha j=der; // j realiza la bsqueda de derecha a izquierda aux; no // // // se crucen las bsquedas busca elemento mayor que pivote busca elemento menor que pivote si no se han cruzado

while(i<j){ // mientras while(A[i]<=pivote && i<j) i++; while(A[j]>pivote) j--; if (i<j) { aux= A[i]; A[i]=A[j]; A[j]=aux;

// los intercambia

} } A[izq]=A[j]; // se coloca el pivote en su lugar de forma que tendremos A[j]=pivote; // los menores a su izquierda y los mayores a su derecha if(izq<j-1) quicksort(A,izq,j-1); // ordenamos subarray izquierdo if(j+1 <der) quicksort(A,j+1,der); // ordenamos subarray derecho }

También podría gustarte