Quick Sort Estructura de Datos: Métodos de ordenamiento. José Alejandro Leal González Verito no m c tu nombre completo jejeje aquí va!!!
Método Quick Sort El método Quick Sort es uno de los métodos mas efectivos ya que se basa en el algoritmo de “Divide y vencerás” lo que proporciona una mayor velocidad de ordenamiento.
2.- Al comparar cada uno de los elementos con el pivote e intercambiar elementos de acuerdo a las condiciones el arreglo queda dividido en dos subarreglos uno con los elementos menores o iguales y otro con los elementos mayores o iguales:
¿Cómo funciona el método Quick Sort? 1.- Se selecciona un numero “PIVOTE” con el cual se van a comparar cada uno de los elementos del arreglo. int pivote = vector[(primero + ultimo) / 2]; Por ejemplo: pivote
int i=inicio, j=fin; int pivote=vector[(inicio + fin) / 2]; variables int auxiliar; do { while(vector[i]<pivote) i++; while(vector[j]>pivote) j--; Condiciones de incremento y decremento de variables if (i<=j) { auxiliar=vector[j]; vector[j]=vector[i]; vector[i]=auxiliar; Intercambio de elementos i++; j--; } } while (i<=j);
3.- El bucle “do while” se repite hasta que termine de intercambiar elementos menores o mayores al pivote. Es decir que las dos variables “i” y “j” se encuentren cuando esto sucede el bucle termina y se repite otra vez todo el proceso. If (inicio<j) { Elementos menores al pivote ordenar(vector,inicio, j); inicio=0 1 …….. pivote } if (fin>i) { Elementos mayores al pivote ordenar(vector,i, fin); pivote ……. fin } abcd wxyz
4.- Al terminar de ordenar cada uno de los subarreglos el arreglo principal queda totalmente ordenado:
Código en Java ordenar(arreglo,0,arreglo.length-1); static void ordenar(int[] vector, int inicio, int fin) { int i=inicio, j=fin; int pivote=vector[(inicio + fin) / 2]; int auxiliar; do { while(vector[i]<pivote) i++; while(vector[j]>pivote) j--; if (i<=j) { auxiliar=vector[j]; vector[j]=vector[i]; vector[i]=auxiliar; i++; j--; } while (i<=j); if(inicio<j) { ordenar(vector,inicio, j); } if(fin>i) { ordenar(vector,i, fin); }
Aplicaciones del método Quick Sort ????
Lista de 5 ejercicios Ordenar los siguientes elementos: