SlideShare une entreprise Scribd logo
1  sur  10
Jorge Villarreal Materia: Algoritmos Computacionales Matricula:1497195 Algoritmo de Quicksort
Problema Como hacer para ordenar una cadena de datos aleatorios? Con un algoritmo de ordenamiento es fácil hacer esto, existen varios métodos para ordenar una cadena. Entre estos métodos está el quicksort.
Explicación El ordenamiento rápido (Quick Sort) hace una partición agarra a un elemento para hacer una partición y los elementos menores a este se mueven a una posición anterior y los mayores a una posición mas adelante.Este método es : Recursivo
propiedades Inestable O(lg(n))  O(n2) tiempo o sino O(n·lg(n)) t No se adapta
Pseudocodigo int colocar(int *v, int b, int t) {inti;int pivote, valor_pivote;inttemp;pivote = b; valor_pivote= v[pivote];for (i=b+1; i<=t; i++){if (v[i] < valor_pivote){pivote++; temp=v[i]; v[i]=v[pivote]; v[pivote]=temp;} } temp=v[b];v[b]=v[pivote];v[pivote]=temp; returnpivote; } voidQuicksort(int* v, int b, int t) {int pivote;if(b < t){pivote=colocar(v, b, t); Quicksort(v, b, pivote-1); Quicksort(v, pivote+1, t);} }
Ejemplo 5 - 3 - 7 - 6 - 2 - 1 - 4 Comenzamos con la lista completa. El elemento divisor será el 4: 5 - 3 - 7 - 6 - 2 - 1 - 4 Comparamos con el 5 por la izquierda y el 1 por la derecha. 5 - 3 - 7 - 6 - 2 - 1 - 4 5 es mayor que cuatro y 1 es menor. Intercambiamos: 1 - 3 - 7 - 6 - 2 - 5 - 4 Avanzamos por la izquierda y la derecha: 1 - 3 - 7 - 6 - 2 - 5 - 4 primera llamada se tiene el arreglo ordenado: 1 - 2 - 3 - 4 - 5 - 6 - 7
3 es menor que 4: avanzamos por la izquierda. 2 es menor que 4: nos mantenemos ahí. 1 - 3 - 7 - 6 - 2 - 5 - 4 7 es mayor que 4 y 2 es menor: intercambiamos. 1 - 3 - 2 - 6 - 7 - 5 - 4 Avanzamos por ambos lados: 1 - 3 - 2 - 6 - 7 - 5 - 4 En este momento termina el ciclo principal, porque los índices se cruzaron. Ahora intercambiamos lista[i] con lista[sup] (pasos 16-18): 1 - 3 - 2 - 4 - 7 - 5 - 6 Aplicamos recursivamente a la sublista de la izquierda (índices 0 - 2). Tenemos lo siguiente: 1 - 3 - 2
1 es menor que 2: avanzamos por la izquierda. 3 es mayor: avanzamos por la derecha. Como se intercambiaron los índices termina el ciclo. Se intercambia lista[i] con lista[sup]: 1 - 2 - 3 Al llamar recursivamente para cada nueva sublista (lista[0]-lista[0] y lista[2]-lista[2]) se retorna sin hacer cambios (condición 5.).Para resumir te muestro cómo va quedando la lista: Segunda sublista: lista[4]-lista[6] 7 - 5 - 6 5 - 7 - 6 5 - 6 - 7 Para cada nueva sublista se retorna sin hacer cambios (se cruzan los índices). Finalmente, al retornar de la primera llamada se tiene el arreglo ordenado: 1 - 2 - 3 - 4 - 5 - 6 – 7 Visto en:http://c.conclase.net/orden/?cap=quicksort
Graficado Aquí se demuestra el rendimiento de quicksort en su mejor y peor caso.Mejor caso : nlognPeor caso: n^2
bibliografia http://es.wikipedia.org/wiki/Quicksort http://www.neoteo.com/quicksort-algoritmo-de-ordenamiento-rapido http://www.psicofxp.com/forums/programacion.313/896136-quick-sort-en-c.html http://www.sorting-algorithms.com/quick-sort http://c.conclase.net/orden/?cap=quicksort http://www.psicofxp.com/forums/programacion.313/896136-quick-sort-en-c.html http://www.lolcats.com/view/19564/

Contenu connexe

Tendances

METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)Fuerza Auriazul
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Método de ordenamiento shell (1)
Método de ordenamiento shell (1)Método de ordenamiento shell (1)
Método de ordenamiento shell (1)kikecarvajalino
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 

Tendances (20)

METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Mergesort
MergesortMergesort
Mergesort
 
Colas
ColasColas
Colas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Método de ordenamiento shell (1)
Método de ordenamiento shell (1)Método de ordenamiento shell (1)
Método de ordenamiento shell (1)
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 

En vedette

En vedette (20)

Metodo quicksort
Metodo quicksortMetodo quicksort
Metodo quicksort
 
Quicksort
QuicksortQuicksort
Quicksort
 
Algoritmo metodo quicksort
Algoritmo metodo quicksortAlgoritmo metodo quicksort
Algoritmo metodo quicksort
 
Algortimos De Ordenamiento
Algortimos De OrdenamientoAlgortimos De Ordenamiento
Algortimos De Ordenamiento
 
Método de ordenamiento quicksort
Método de ordenamiento quicksortMétodo de ordenamiento quicksort
Método de ordenamiento quicksort
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Quicksort
QuicksortQuicksort
Quicksort
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
 
Prof. brenda
Prof. brendaProf. brenda
Prof. brenda
 
Tema5
Tema5Tema5
Tema5
 
Guión didáctico
Guión didácticoGuión didáctico
Guión didáctico
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Presentacion OpenShift by RedHat
Presentacion OpenShift by RedHatPresentacion OpenShift by RedHat
Presentacion OpenShift by RedHat
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datos
 
Busqueda
BusquedaBusqueda
Busqueda
 
Analisis busqueda binaria y secuencia
Analisis busqueda binaria y secuencia Analisis busqueda binaria y secuencia
Analisis busqueda binaria y secuencia
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Ejercicio de ordenamiento de vectores
Ejercicio de ordenamiento de vectoresEjercicio de ordenamiento de vectores
Ejercicio de ordenamiento de vectores
 

Similaire à Algoritmo de quicksort

Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)Linio Colquehuanca Rodrigo
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos OrdenamientoDaniel Guaycha
 
Quick Sort
Quick SortQuick Sort
Quick Sortjo0eel
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosK Manuel TN
 
Metodos de ordenamiento 2
Metodos de ordenamiento 2Metodos de ordenamiento 2
Metodos de ordenamiento 2angela montilla
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfjorgeulises3
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaMaiky Kobatakane
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Ecuaciones de 3 incógnitas
Ecuaciones de 3 incógnitasEcuaciones de 3 incógnitas
Ecuaciones de 3 incógnitaskatia colin
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en javaeccutpl
 
estructura de estructura de datos
estructura de estructura de datosestructura de estructura de datos
estructura de estructura de datosAnnette Ponzon
 
Presentacion programacion dinamica luis silva
Presentacion programacion dinamica luis silva Presentacion programacion dinamica luis silva
Presentacion programacion dinamica luis silva LuisFeSilva
 
Sistema de numeracion
Sistema de numeracionSistema de numeracion
Sistema de numeracionRafael R
 

Similaire à Algoritmo de quicksort (20)

Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodos
 
Metodos de ordenamiento 2
Metodos de ordenamiento 2Metodos de ordenamiento 2
Metodos de ordenamiento 2
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busqueda
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
 
Ecuaciones de 3 incógnitas
Ecuaciones de 3 incógnitasEcuaciones de 3 incógnitas
Ecuaciones de 3 incógnitas
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
estructura de estructura de datos
estructura de estructura de datosestructura de estructura de datos
estructura de estructura de datos
 
Actividad integradora 2
Actividad integradora 2Actividad integradora 2
Actividad integradora 2
 
Presentacion programacion dinamica luis silva
Presentacion programacion dinamica luis silva Presentacion programacion dinamica luis silva
Presentacion programacion dinamica luis silva
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Algoritmos divide y vencerás
Algoritmos divide y vencerásAlgoritmos divide y vencerás
Algoritmos divide y vencerás
 
Sistema de numeracion
Sistema de numeracionSistema de numeracion
Sistema de numeracion
 
Sistemas de numeracion
Sistemas de numeracionSistemas de numeracion
Sistemas de numeracion
 

Algoritmo de quicksort

  • 1. Jorge Villarreal Materia: Algoritmos Computacionales Matricula:1497195 Algoritmo de Quicksort
  • 2. Problema Como hacer para ordenar una cadena de datos aleatorios? Con un algoritmo de ordenamiento es fácil hacer esto, existen varios métodos para ordenar una cadena. Entre estos métodos está el quicksort.
  • 3. Explicación El ordenamiento rápido (Quick Sort) hace una partición agarra a un elemento para hacer una partición y los elementos menores a este se mueven a una posición anterior y los mayores a una posición mas adelante.Este método es : Recursivo
  • 4. propiedades Inestable O(lg(n)) O(n2) tiempo o sino O(n·lg(n)) t No se adapta
  • 5. Pseudocodigo int colocar(int *v, int b, int t) {inti;int pivote, valor_pivote;inttemp;pivote = b; valor_pivote= v[pivote];for (i=b+1; i<=t; i++){if (v[i] < valor_pivote){pivote++; temp=v[i]; v[i]=v[pivote]; v[pivote]=temp;} } temp=v[b];v[b]=v[pivote];v[pivote]=temp; returnpivote; } voidQuicksort(int* v, int b, int t) {int pivote;if(b < t){pivote=colocar(v, b, t); Quicksort(v, b, pivote-1); Quicksort(v, pivote+1, t);} }
  • 6. Ejemplo 5 - 3 - 7 - 6 - 2 - 1 - 4 Comenzamos con la lista completa. El elemento divisor será el 4: 5 - 3 - 7 - 6 - 2 - 1 - 4 Comparamos con el 5 por la izquierda y el 1 por la derecha. 5 - 3 - 7 - 6 - 2 - 1 - 4 5 es mayor que cuatro y 1 es menor. Intercambiamos: 1 - 3 - 7 - 6 - 2 - 5 - 4 Avanzamos por la izquierda y la derecha: 1 - 3 - 7 - 6 - 2 - 5 - 4 primera llamada se tiene el arreglo ordenado: 1 - 2 - 3 - 4 - 5 - 6 - 7
  • 7. 3 es menor que 4: avanzamos por la izquierda. 2 es menor que 4: nos mantenemos ahí. 1 - 3 - 7 - 6 - 2 - 5 - 4 7 es mayor que 4 y 2 es menor: intercambiamos. 1 - 3 - 2 - 6 - 7 - 5 - 4 Avanzamos por ambos lados: 1 - 3 - 2 - 6 - 7 - 5 - 4 En este momento termina el ciclo principal, porque los índices se cruzaron. Ahora intercambiamos lista[i] con lista[sup] (pasos 16-18): 1 - 3 - 2 - 4 - 7 - 5 - 6 Aplicamos recursivamente a la sublista de la izquierda (índices 0 - 2). Tenemos lo siguiente: 1 - 3 - 2
  • 8. 1 es menor que 2: avanzamos por la izquierda. 3 es mayor: avanzamos por la derecha. Como se intercambiaron los índices termina el ciclo. Se intercambia lista[i] con lista[sup]: 1 - 2 - 3 Al llamar recursivamente para cada nueva sublista (lista[0]-lista[0] y lista[2]-lista[2]) se retorna sin hacer cambios (condición 5.).Para resumir te muestro cómo va quedando la lista: Segunda sublista: lista[4]-lista[6] 7 - 5 - 6 5 - 7 - 6 5 - 6 - 7 Para cada nueva sublista se retorna sin hacer cambios (se cruzan los índices). Finalmente, al retornar de la primera llamada se tiene el arreglo ordenado: 1 - 2 - 3 - 4 - 5 - 6 – 7 Visto en:http://c.conclase.net/orden/?cap=quicksort
  • 9. Graficado Aquí se demuestra el rendimiento de quicksort en su mejor y peor caso.Mejor caso : nlognPeor caso: n^2
  • 10. bibliografia http://es.wikipedia.org/wiki/Quicksort http://www.neoteo.com/quicksort-algoritmo-de-ordenamiento-rapido http://www.psicofxp.com/forums/programacion.313/896136-quick-sort-en-c.html http://www.sorting-algorithms.com/quick-sort http://c.conclase.net/orden/?cap=quicksort http://www.psicofxp.com/forums/programacion.313/896136-quick-sort-en-c.html http://www.lolcats.com/view/19564/