Estructura de Datos Mtodos de ordenamiento Quick Sort

  • Slides: 11
Download presentation
Estructura de Datos: Métodos de ordenamiento. Quick Sort José Alejandro Leal González Verito no

Estructura de Datos: Métodos de ordenamiento. Quick Sort 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

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

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

¿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: 0 13 1 22 2 26 3 7 4 5 6 7 21 23 18 16 pivote 8 2 9 5

int i=inicio, j=fin; int pivote=vector[(inicio + fin) / 2]; int auxiliar; do { while(vector[i]<pivote)

int i=inicio, j=fin; int pivote=vector[(inicio + fin) / 2]; int auxiliar; do { while(vector[i]<pivote) i++; while(vector[j]>pivote) j--; decremento de variables if (i<=j) { auxiliar=vector[j]; vector[j]=vector[i]; vector[i]=auxiliar; i++; j--; } } while (i<=j); variables Condiciones de incremento y Intercambio de elementos

3. - El bucle “do while” se repite hasta que termine de intercambiar elementos

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) { ordenar(vector, inicio, j); } if (fin>i) { ordenar(vector, i, fin); } Elementos menores al pivote inicio=0 1 ……. . pivote a b c d Elementos mayores al pivote ……. fin w x y z

4. - Al terminar de ordenar cada uno de los subarreglos el arreglo principal

4. - Al terminar de ordenar cada uno de los subarreglos el arreglo principal queda totalmente ordenado: 0 2 1 5 2 3 4 5 6 7 8 9 7 13 16 18 21 22 23 26

Código en Java j--; } } while (i<=j); ordenar(arreglo, 0, arreglo. length-1); static void

Código en Java j--; } } while (i<=j); 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++; } if(inicio<j) { ordenar(vector, inicio, j); } if(fin>i) { ordenar(vector, i, fin); } }

Aplicaciones del método Quick Sort ? ?

Aplicaciones del método Quick Sort ? ?

Lista de 5 ejercicios Ordenar los siguientes elementos: 5 54 23 33 71 10

Lista de 5 ejercicios Ordenar los siguientes elementos: 5 54 23 33 71 10 67 12 55 14 20 45 43 76 29 30 33 54 85 51 50 78 67 43 83 33 99 45 56 60 44 0 33 2 12 23 43 78 5 61 12 56 99 76 23 43 43 0 8 61