SlideShare una empresa de Scribd logo
1 de 12
Programación Avanzada.

                          Víctor Galmichi
                         Patricia Hinojosa
                             Uries Benítez
                             Luis Gilberto
                           Ignacio Pineda
¿Qué es?
 Es un algoritmo 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.
¿Cómo funciona?
 De los valores que introducirá el usuario por ejemplo:



 55 32 78 64 25 15 45

 IZQUIERDA                                 D  ERECHA
                                                       P
                                                       IVOTE
 De tus datos

        55 32 78 64 25 15 45


    Se va a comparar de la siguiente
                   manera:
     45 con el 55 y a su vez con el 15
 Nos queda que:


         45<55 y 45>15
Esto es:

  15 32 78 64 25 55 45
I zquierda         D erecha   P
                              ivote
 Después avanzara I por la derecha y D por la izquierda
 y quedara esto:




       15 32 78 64 25 55 45
             Izquierda           D erecha     P   ivote




 Y se hace el mismo ciclo o procedimiento hasta
 obtener las cadenas      :D
 Las cadenas nos quedaran así:


                      CADENA 1
                         15 32 25

                      CADENA 2
                        78 55 64

                       PIVOTE
                           45
 Tomamos la primer cadena y hacemos la comparación



                15                32             25
Esto es:

 15<25 avanza por la izquierda y 32>25 avanzaremos por la derecha y nos
                                  quedara:




               15               25              32
De igual forma
 se ordena la
   cadena 2
 Teniendo las cadenas ordenadas

Cadena 1              Pivote              Cadena 2
15 25 32                45             55 64 78
15 25 32 45 55 64 78
Quicksort12

Más contenido relacionado

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

Quicksort12

  • 1. Programación Avanzada. Víctor Galmichi Patricia Hinojosa Uries Benítez Luis Gilberto Ignacio Pineda
  • 2. ¿Qué es? Es un algoritmo 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. ¿Cómo funciona?  De los valores que introducirá el usuario por ejemplo: 55 32 78 64 25 15 45 IZQUIERDA D ERECHA P IVOTE
  • 4.  De tus datos 55 32 78 64 25 15 45 Se va a comparar de la siguiente manera: 45 con el 55 y a su vez con el 15
  • 5.  Nos queda que: 45<55 y 45>15 Esto es: 15 32 78 64 25 55 45 I zquierda D erecha P ivote
  • 6.  Después avanzara I por la derecha y D por la izquierda y quedara esto: 15 32 78 64 25 55 45 Izquierda D erecha P ivote  Y se hace el mismo ciclo o procedimiento hasta obtener las cadenas :D
  • 7.  Las cadenas nos quedaran así:  CADENA 1 15 32 25  CADENA 2 78 55 64  PIVOTE 45
  • 8.  Tomamos la primer cadena y hacemos la comparación 15 32 25 Esto es: 15<25 avanza por la izquierda y 32>25 avanzaremos por la derecha y nos quedara: 15 25 32
  • 9. De igual forma se ordena la cadena 2
  • 10.  Teniendo las cadenas ordenadas Cadena 1 Pivote Cadena 2 15 25 32 45 55 64 78
  • 11. 15 25 32 45 55 64 78