Ordenacion rapida - ESTR-ORG

Download Report

Transcript Ordenacion rapida - ESTR-ORG

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

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