SlideShare una empresa de Scribd logo
Métodos de Ordenamiento
Metodo
Quicksort
Historia
 El ordenamiento rápido (quicksort en
inglés) es un algoritmo creado por el
científico británico en computación
Charles Anthony Richard Hoare
(Colombo, Sri Lanka, 11 de enero de
1934). Hoare basado en la técnica de
divide y vencerás, que permite, en
promedio, ordenar n elementos en un
tiempo proporcional a n log n.
¿En que consiste?
El método Quiscksort en pocas
palabras consiste en tomar un punto
de referencia, al que se le llama
pivote, e ir verificando dato a dato por
los dos extremos del arreglo con el
uso de dos punteros, un izquierdo y
un derecho para comprobar si el valor
verificado es mas grande o mas
pequeño que nuestro pivote e ir
intercambiando los valores en caso de
ser necesario.
Algoritmo
 Elegir un elemento de la lista de elementos a
ordenar, al que llamaremos pivote.
 Resituar los demás elementos de la lista a
cada lado del pivote, de manera que a un
lado queden todos los menores que él, y al
otro los mayores. Los elementos iguales al
pivote pueden ser colocados tanto a su
derecha como a su izquierda, dependiendo
de la implementación deseada.
 La lista queda separada en dos sublistas,
una formada por los elementos a la izquierda
del pivote, y otra por los elementos a su
derecha.
 En el peor caso, el pivote termina en un
extremo de la lista. El orden de
complejidad del algoritmo es entonces
de O(n²). El peor caso dependerá de la
implementación del algoritmo, aunque
habitualmente ocurre en listas que se
encuentran ordenadas, o casi
ordenadas. Pero principalmente
depende del pivote, si por ejemplo el
algoritmo implementado toma como
pivote siempre el primer elemento del
array, y el array que le pasamos está
ordenado, siempre va a generar a su
izquierda un array vacío, lo que es
ineficiente.
 En el caso promedio, el orden es O(n•log
n).
¿Cómo funciona?
Supongamos que este es nuestro
arreglo de datos
4 5 2 3 6 1
Ahora colocaremos los dos punteros y
el pivote
4 5 2 3 6 1
I D
Pivote
Nuestro pivote es el primer dato de la
izquierda
4
5 2 3 6 1
I D
pivote
El espacio vacio de la Izquierda es donde
podríamos realizar el intercambio,
comenzaremos a verificar los datos por la
Derecha
4
5 2 3 6 1
I D
Aquí
quedo un
espacio
vacio
Los datos menores que 4 irán al lado
izquierdo y los mayores que 4 irán al
lado derecho
4
5 2 3 6 1
I D
Aquí
quedo un
espacio
vacio
MAYORE
S
MENORE
S
Comenzamos…
4
5 2 3 6 1
I D
Aquí
quedo un
espacio
vacio
¿1>4?
Intercambio
4
5 2 3 61
I D
Aquí
quedo un
espacio
vacio
Recorrer
Verificar del lado izquierdo
4
5 2 3 61
I
D
Aquí
quedo un
espacio
vacio
¿5>4?
Intercambio…
4
52 3 61
I
D
Aquí
quedo un
espacio
vacio
Recorrer
Verificar el lado derecho
4
52 3 61
I
D
Aquí
quedo un
espacio
vacio
¿6>4
?
Verificar el lado derecho
4
52 3 61
I
D
Aquí
quedo un
espacio
vacio
¿6>4
?6 es mayor que 4 y ya esta en
Lugar correspondiente, lo que
Corresponde hacer es recorrer
Nuevamente el puntero derecho
Recorrer
Verificar el lado derecho
4
52 3 61
I D
Aquí
quedo un
espacio
vacio
¿3>4
?
Intercambiar y recorrer…
4
523 61
I D
Aquí
quedo un
espacio
vacio
Recorrer
Recorrer…
4
523 61
I D
Aquí
quedo un
espacio
vacio
El 2 ya es menor
Que el 4, se queda en esa
Posición.
Recorrer
Se han juntado los punteros!
4 523 61
I
D
El 4 ha encontrado su lugar!
El 4 ya esta ordenado, los valores menores
Que 4 están a su lado izquierdo y los
Mayores al derecho
Análisis de la situación
4 523 61
Tenemos dos arreglos resultantes con los que debemos
Realizar el mismo procedimiento cada uno con sus
Respectivos punteros izquierdo y derecho…
Arreglo A
Arreglo B
I D I D
Es un buen momento para mencionar que este método es Recursivo. En esta p
Es donde la recursividad se hace presente, invocándose el mismo algoritmo an
Visto, ahora para Arreglo A y nuevamente para Arreglo B.
Hay que realizar el mismo
procedimiento (esta vez de una
manera mas breve)
4 523 6
1
I D
4 523 6
1
I D
4 523 6
1
I
D
Los datos quedaron exactamente
igual porque 1 ya
esta en su posición correspondiente
4 523 61
I D
Análisis de la situación…
I D
Arreglo A Arreglo B
4 523 61
I D
Repetir proceso
4 52
3
61
I D
Repetir proceso
4 5
2
3
61
I D
Repetir proceso
4 5
2 3
61
I
D
El arreglo A
Ha quedado
Ordenado
correctamente
Arreglo A Arreglo B
Aun hay que realizar
El proceso para Arreglo B
4 5
2 3
61
I D
Repetir proceso…
4 5
2 3
6
1
I D
Repetir proceso…
4 52 3
6
1
I
D
Repetir proceso…
4 52 3 61
I
D
Éxito!
Nuestros datos ya están ordenados
Correctamente con el método
Quicksort!
Código Java…
Nuestra clase Quicksort
contiene:Este método simplemente hace que nuestro
Arreglo original sea igual a el nuevo, ya ordenado
Pero nos envía a quicksort1…
quicksort1
Este método solo nos manda a quicksort2 con
Instrucciones un poco mas especificas, punteros y el arreglo.
quicksort2
Aquí se desarrolla por completo el
algoritmo Quicksort para ordenamiento
de datos, y por lo tanto se pone un poco
complicado…
Quicksort
Ya ordenados los datos el control vuelve a main
Quicksort
Esto fue Método de
Ordenamiento Quicksort
Gracias por su
atención…
Rodolfo Delgado
González
Instituto Tecnológico de Ciudad
Juárez

Más contenido relacionado

PPTX
Estructura de Datos Unidad - V: Métodos de Ordenamiento
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPTX
Algoritmo de dekker
PPTX
Shell exposición
PDF
Algoritmos de Ordenamiento externo
PPT
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
Algoritmo de dekker
Shell exposición
Algoritmos de Ordenamiento externo

La actualidad más candente (20)

PPTX
Listas,pilas y colas Estructura de Datos
PPTX
4. algoritmo de ordenamiento externo
PDF
Estructuras de datos lineales
PPTX
Metodos de ordenamiento
PPTX
3. algoritmos de ordenamiento interno
PPTX
Método de ordenación por inserción directa
PPTX
Metodos de ordenamiento
PPTX
Insercion directa
PPTX
Metodo Intercambio
PPTX
Busqueda Binaria
ODP
METODOS DE ORDENAMIENTO
PDF
direccionamiento microcontroladores pic
PPTX
Merge sort
PDF
Algoritmo de ordenamiento: Heap Sort
PPTX
Listas, pilas y colas
PPTX
Estructura de Datos - Unidad 6 Metodos de busqueda
PDF
Arboles M-Way, 2-3 y 2-3-4
PPTX
Tablas Hash
PPTX
Método de ordenamiento por selección (selection sort
PPTX
Quicksort
Listas,pilas y colas Estructura de Datos
4. algoritmo de ordenamiento externo
Estructuras de datos lineales
Metodos de ordenamiento
3. algoritmos de ordenamiento interno
Método de ordenación por inserción directa
Metodos de ordenamiento
Insercion directa
Metodo Intercambio
Busqueda Binaria
METODOS DE ORDENAMIENTO
direccionamiento microcontroladores pic
Merge sort
Algoritmo de ordenamiento: Heap Sort
Listas, pilas y colas
Estructura de Datos - Unidad 6 Metodos de busqueda
Arboles M-Way, 2-3 y 2-3-4
Tablas Hash
Método de ordenamiento por selección (selection sort
Quicksort
Publicidad

Destacado (20)

PPTX
Método de ordenamiento quicksort
DOC
Metodo quicksort
PPT
Quicksort
PPTX
Metodos de ordenamiento
PPTX
Unidad 5
PPTX
Algoritmo de quicksort
PPTX
Quick sort
DOC
Algoritmo metodo quicksort
DOC
Como crear un merge (sobres y cartas personalizadas) por ljf 2012
PPT
Metodo burbuja jenny v.
PPTX
Metodos de ordenamiento
DOCX
Cuadro comparativo quicksort
PPTX
Método de insercion
PPTX
Ordenamiento parte 3
PPTX
Unidad cinco estructura de datos
DOCX
LA ENTREVISTA
PPTX
Exposicion Estructuras
Método de ordenamiento quicksort
Metodo quicksort
Quicksort
Metodos de ordenamiento
Unidad 5
Algoritmo de quicksort
Quick sort
Algoritmo metodo quicksort
Como crear un merge (sobres y cartas personalizadas) por ljf 2012
Metodo burbuja jenny v.
Metodos de ordenamiento
Cuadro comparativo quicksort
Método de insercion
Ordenamiento parte 3
Unidad cinco estructura de datos
LA ENTREVISTA
Exposicion Estructuras
Publicidad

Similar a Quicksort (20)

PPTX
Quick Sort
PDF
Tiempo de ejecucion de particiones (quicksort)
PPTX
Inge no lo hicimos
PPTX
Reny Galaviz y Jaime Marin Análisis de Algoritmo
PPTX
Reny galavs jaimemarin
DOCX
Algoritmos Ordenamiento
DOCX
Metodos de odenamiento de vctores
PPTX
MÉTODOS DE ORDENAMIENTO Y BUSQUEDA
DOCX
Ordenamientos de vectores
PPTX
Unidad 4 Algoritmos complejos de ord.pptx
DOCX
Josemanueunidad4 investigacionmetodos
PPTX
Ordenacion y busqueda
DOCX
Arreglos enitmar
PPTX
Ordenamiento en C++
DOCX
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
DOCX
ALGORITMO METODO DE ORDENAMIENTO COUNTING SORT
PPTX
Algoritmos ordenación.pptx
PDF
metodos-de-ordenamiento.pdf
Quick Sort
Tiempo de ejecucion de particiones (quicksort)
Inge no lo hicimos
Reny Galaviz y Jaime Marin Análisis de Algoritmo
Reny galavs jaimemarin
Algoritmos Ordenamiento
Metodos de odenamiento de vctores
MÉTODOS DE ORDENAMIENTO Y BUSQUEDA
Ordenamientos de vectores
Unidad 4 Algoritmos complejos de ord.pptx
Josemanueunidad4 investigacionmetodos
Ordenacion y busqueda
Arreglos enitmar
Ordenamiento en C++
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
ALGORITMO METODO DE ORDENAMIENTO COUNTING SORT
Algoritmos ordenación.pptx
metodos-de-ordenamiento.pdf

Último (11)

DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
Fundamentos de Python - Curso de Python dia 1
PPTX
sistemas de informacion.................
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Implementación equipo monitor12.08.25.pptx
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Fundamentos de Python - Curso de Python dia 1
sistemas de informacion.................
Derechos_de_Autor_y_Creative_Commons.pptx
AutoCAD Herramientas para el futuro, Juan Fandiño
Implementación equipo monitor12.08.25.pptx
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
Conceptos basicos de Base de Datos y sus propiedades
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA

Quicksort

  • 2. Historia  El ordenamiento rápido (quicksort en inglés) es un algoritmo creado por el científico británico en computación Charles Anthony Richard Hoare (Colombo, Sri Lanka, 11 de enero de 1934). Hoare basado en la técnica de divide y vencerás, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n.
  • 3. ¿En que consiste? El método Quiscksort en pocas palabras consiste en tomar un punto de referencia, al que se le llama pivote, e ir verificando dato a dato por los dos extremos del arreglo con el uso de dos punteros, un izquierdo y un derecho para comprobar si el valor verificado es mas grande o mas pequeño que nuestro pivote e ir intercambiando los valores en caso de ser necesario.
  • 4. Algoritmo  Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote.  Resituar los demás elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que él, y al otro los mayores. Los elementos iguales al pivote pueden ser colocados tanto a su derecha como a su izquierda, dependiendo de la implementación deseada.  La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha.
  • 5.  En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de O(n²). El peor caso dependerá de la implementación del algoritmo, aunque habitualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas. Pero principalmente depende del pivote, si por ejemplo el algoritmo implementado toma como pivote siempre el primer elemento del array, y el array que le pasamos está ordenado, siempre va a generar a su izquierda un array vacío, lo que es ineficiente.  En el caso promedio, el orden es O(n•log n).
  • 6. ¿Cómo funciona? Supongamos que este es nuestro arreglo de datos 4 5 2 3 6 1
  • 7. Ahora colocaremos los dos punteros y el pivote 4 5 2 3 6 1 I D Pivote
  • 8. Nuestro pivote es el primer dato de la izquierda 4 5 2 3 6 1 I D pivote
  • 9. El espacio vacio de la Izquierda es donde podríamos realizar el intercambio, comenzaremos a verificar los datos por la Derecha 4 5 2 3 6 1 I D Aquí quedo un espacio vacio
  • 10. Los datos menores que 4 irán al lado izquierdo y los mayores que 4 irán al lado derecho 4 5 2 3 6 1 I D Aquí quedo un espacio vacio MAYORE S MENORE S
  • 11. Comenzamos… 4 5 2 3 6 1 I D Aquí quedo un espacio vacio ¿1>4?
  • 12. Intercambio 4 5 2 3 61 I D Aquí quedo un espacio vacio Recorrer
  • 13. Verificar del lado izquierdo 4 5 2 3 61 I D Aquí quedo un espacio vacio ¿5>4?
  • 14. Intercambio… 4 52 3 61 I D Aquí quedo un espacio vacio Recorrer
  • 15. Verificar el lado derecho 4 52 3 61 I D Aquí quedo un espacio vacio ¿6>4 ?
  • 16. Verificar el lado derecho 4 52 3 61 I D Aquí quedo un espacio vacio ¿6>4 ?6 es mayor que 4 y ya esta en Lugar correspondiente, lo que Corresponde hacer es recorrer Nuevamente el puntero derecho Recorrer
  • 17. Verificar el lado derecho 4 52 3 61 I D Aquí quedo un espacio vacio ¿3>4 ?
  • 18. Intercambiar y recorrer… 4 523 61 I D Aquí quedo un espacio vacio Recorrer
  • 19. Recorrer… 4 523 61 I D Aquí quedo un espacio vacio El 2 ya es menor Que el 4, se queda en esa Posición. Recorrer
  • 20. Se han juntado los punteros! 4 523 61 I D El 4 ha encontrado su lugar! El 4 ya esta ordenado, los valores menores Que 4 están a su lado izquierdo y los Mayores al derecho
  • 21. Análisis de la situación 4 523 61 Tenemos dos arreglos resultantes con los que debemos Realizar el mismo procedimiento cada uno con sus Respectivos punteros izquierdo y derecho… Arreglo A Arreglo B I D I D Es un buen momento para mencionar que este método es Recursivo. En esta p Es donde la recursividad se hace presente, invocándose el mismo algoritmo an Visto, ahora para Arreglo A y nuevamente para Arreglo B.
  • 22. Hay que realizar el mismo procedimiento (esta vez de una manera mas breve) 4 523 6 1 I D
  • 24. 4 523 6 1 I D Los datos quedaron exactamente igual porque 1 ya esta en su posición correspondiente
  • 25. 4 523 61 I D Análisis de la situación… I D Arreglo A Arreglo B
  • 26. 4 523 61 I D Repetir proceso
  • 29. 4 5 2 3 61 I D El arreglo A Ha quedado Ordenado correctamente Arreglo A Arreglo B Aun hay que realizar El proceso para Arreglo B
  • 30. 4 5 2 3 61 I D Repetir proceso…
  • 31. 4 5 2 3 6 1 I D Repetir proceso…
  • 33. 4 52 3 61 I D Éxito! Nuestros datos ya están ordenados Correctamente con el método Quicksort!
  • 35. Nuestra clase Quicksort contiene:Este método simplemente hace que nuestro Arreglo original sea igual a el nuevo, ya ordenado Pero nos envía a quicksort1…
  • 36. quicksort1 Este método solo nos manda a quicksort2 con Instrucciones un poco mas especificas, punteros y el arreglo.
  • 37. quicksort2 Aquí se desarrolla por completo el algoritmo Quicksort para ordenamiento de datos, y por lo tanto se pone un poco complicado…
  • 39. Ya ordenados los datos el control vuelve a main
  • 41. Esto fue Método de Ordenamiento Quicksort Gracias por su atención… Rodolfo Delgado González Instituto Tecnológico de Ciudad Juárez