Ordenacion rapida - ESTR-ORG

Report
INSTITUTO TECNOLOGICO DE APIZACO
CATEDRATICO: MARIA GUADALUPE REYES GUTIERREZ
EQUIPO 4
ALEJANDRO VAZQUEZ MUÑOZ
MINERVA MATLALCUATZI CRUZ
VIRIDIANA XOCHITIONTZI CUATECONZI
ERIKA ESCAREGA RODRIGUEZ
 Quick Sort: ORDENACION RAPIDA *
Es el método de ordenamiento Quick Sort es actualmente el mas
eficiente y veloz de los metodos de ordenación.
Este método es una mejora sustancial del método de intercambio
directo y recibe el nombre de Quick Sort por la velocidad con que
ordena los elementos del (arreglo) codigo.
El secreto de Quick Sort consiste en dividir la lista original en dos listas
mas pequeñas.
Para ello, se elige un elemento cualquiera (aunque en general se suele
utilizar el que se encuentra en medio de la lista.) que se le llama pivote. la
lista original en dos listas mas pequeñas.
La idea central de este algoritmo consiste en lo siguiente:
Se trata de ubicar el pivote en la posicion correcta del
arreglo, de tal forma que todos los elementos que se
centran a la izquierda sean menores o iguales a x.
Y todos los elementos que se encuentran a su
derecha sean mayores o iguales a x.
Las implementaciones mas eficientes realizan esta tarea
Una vez terminado de recorrer el vector, se tiene en la
primera posición al menor elemento de todos.
El proceso se repite ahora con el segundo elemento del
arreglo y así para todos los elementos.
PSEUDOCODIGO
quickSort(int[] v, int inicio, int fin)
si(inicio>=fin) regresa
pivote = v[inicio]
izq = inicio+1
der = fin
cuando (izq<=der)
cuando(izq<=fin && v[izq]< pivote) izq++
cuando(der>inicio && v[der]>=pivote) der-si(izq<der)
tmp = v[izq]
v[izq] = v[der]
v[der] = tmp
CODIGO JAVA
 public class Main{
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
int tamanio;
System.out.print("Ingrese el tamanio del arreglo: ");
tamanio = sc.nextInt();
int arreglo[] = new int[tamanio];
for(int i = 0; i < tamanio; i++)
{
System.out.print("arreglo["+ i +"]: ");
arreglo[i] = sc.nextInt();
}
Quicksort(arreglo, 0, tamanio - 1);
System.out.print("\nArreglo ordenado: ");
for(int i = 0; i < tamanio; i++)
System.out.print(arreglo[i] + " ");
}
GRACIAS POR SU ATENCION

similar documents