Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLourdes Cáceres Domínguez Modificado hace 9 años
1
Quick Sort Estructura de Datos: Métodos de ordenamiento. José Alejandro Leal González Verito no m c tu nombre completo jejeje aquí va!!!
2
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.
3
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:
4
¿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 1 2 3 4 5 6 7 8 9 pivote 13222672123181625
5
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);
6
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
7
4.- Al terminar de ordenar cada uno de los subarreglos el arreglo principal queda totalmente ordenado: 0 1 2 3 4 5 6 7 8 9 25713161821222326
8
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); }
10
Aplicaciones del método Quick Sort ????
11
Lista de 5 ejercicios Ordenar los siguientes elementos: 5 10 20 30 50 33 44 23 12 43 54 67 45 33 78 99 0 43 56 43 23 12 43 54 67 45 33 78 99 0 33 55 76 85 43 56 2 5 76 8 71 14 29 51 83 60 12 61 23 61
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.