SlideShare una empresa de Scribd logo
1 de 2
Quicksort <br />En esta clase se estudio el algoritmo quicksort, un método para ordenar vectores diseñado por división y conquista. Se explicó que la división del problema en subproblemas se realiza mediante la función partición, que divide el vector que se quiere ordenar en dos segmentos, el uno que contiene elementos menor o igual que el pivote, el otro que contiene elementos mayor o igual que el pivote; el elemento pivote se puede escoger de muchas diferentes maneras, pero en este curso lo vamos a tomar al primer elemento del segmento que se quiere partir. La conquista consiste en ordenar cada uno de los segmentos resultantes de la partición y lo haremos utilizando el mismo método quicksort. El paso de combinación consiste en hacer nada.<br />Luego se explicó la manera en que se realiza la operación partición, y se calculó el tiempo de ejecución de este algoritmo:<br />t(n) pertenece a teta(n)<br />Mas adelante se encontró la ecuación de recurrencia para el tiempo de ejecución del algoritmo quicksort para un caso cualquiera, donde la partición ocurre de tal manera que los subproblemas que resultan son de tamaño k y n-k, respectivamente.<br />t(n) = t(k) + t(n-k) + teta(n)<br />t(1) = 1<br />La segunda ecuación es la condición de borde, que corresponde al caso en que los subproblemas que resultan en el proceso de división son de tamaño 1, para los cuales tomamos el tiempo de ejecución 1 tambien.<br />Resolvimos la ecuación para dos casos particulares: el mejor y el peor de los casos. El mejor de los casos ocurre cuando la partición divide al vector que se ordena por la mitad; entonces k es aproximadamente n/2, y la ecuación de recurrencia queda así:<br />t(n) = 2·t(n/2) + n<br />que es una ecuación que ya hemos resuelto tres veces, cuya solución es <br />t(n) pertenece a teta(n·ln(n))<br />que es el mejor de los tiempos que se puede obtener para ordenar vectores.<br />Luego calculamos el tiempo de ejecución de quicksort para el peor de los casos; este ocurre cuando uno de los segmentos que resultan de la partición tiene un solo elemento y el otro los restantes; la ecuación de recurrencia se reduce entonces a:<br />t(n) = t(1) + t(n-k) + n<br />t(1) = 1<br />Se resolvió esta ecuación por iteración, usando el árbol recursivo, pues no se puede aplicar el teorema maestro, y se obtuvo:<br />t(n) pertenece a teta(n2)<br />Lo que que muestra que en el peor de los casos el algoritmo quicksort se comporta como los métodos mas malos que se conocen para ordenar vectores.<br />Se dijo que el comportamiento promedio de quicksort es como el del mejor de los casos; razón por la cual quicksort es uno de los métodos mas populares; además, su implementación pequeña. <br />qs(A, i, j)<br />si i distinta de j<br />k <- partición(A, i, j)<br />qs(A, i, k)<br />qs(A, k+1, j)<br />Finalmente se elaboró una tabla con los tiempos de ejecución promedio, mejor y peor de los casos, para los métodos de ordenar vectores que se han estudiado hasta ahora.<br />Se enunció la regla de oro que dice que el tiempo promedio de ejecución de un algoritmo tiene el mismo comportamiento que el del peor de los caso; esta regla tiene, sin embargo, excepciones, como en el caso de quicksort.<br /> <br />
Analisis_Algoritmo_Quicksort

Más contenido relacionado

La actualidad más candente

Toma de decisiones If Else
Toma de decisiones If ElseToma de decisiones If Else
Toma de decisiones If Elsecompumet sac
 
GRAFOS EULERIANOS Y HAMILTONIANOS
GRAFOS EULERIANOS Y HAMILTONIANOSGRAFOS EULERIANOS Y HAMILTONIANOS
GRAFOS EULERIANOS Y HAMILTONIANOSmariangemat
 
U1.5 Álgebra Declarativa
U1.5 Álgebra DeclarativaU1.5 Álgebra Declarativa
U1.5 Álgebra Declarativarezzaca
 
Metodos numericos 5
Metodos numericos 5Metodos numericos 5
Metodos numericos 5monica
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
Polinomios de taylor
Polinomios de taylorPolinomios de taylor
Polinomios de taylorKeivin Perez
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en CAbraham
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Integración numérica muy bueno
Integración numérica muy buenoIntegración numérica muy bueno
Integración numérica muy buenoLuis Elias
 
Espacios vectoriales diapositivas
Espacios vectoriales diapositivasEspacios vectoriales diapositivas
Espacios vectoriales diapositivasStefany De la Torre
 
Estructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y HamiltonianosEstructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y HamiltonianosFabiola Dubraska
 
Demostracion del Teorema de Pascal en combinatoria, Algebra Superior
Demostracion del Teorema de Pascal en combinatoria, Algebra SuperiorDemostracion del Teorema de Pascal en combinatoria, Algebra Superior
Demostracion del Teorema de Pascal en combinatoria, Algebra SuperiorGuzano Morado
 
Logica de primer orden
Logica de primer ordenLogica de primer orden
Logica de primer ordensamuel viñas
 
Metodo del anulador
Metodo del anuladorMetodo del anulador
Metodo del anuladorMakabronero
 
Presentación de series infinitas
Presentación de series infinitasPresentación de series infinitas
Presentación de series infinitasmayrene19
 

La actualidad más candente (20)

Modelo crc
Modelo crc   Modelo crc
Modelo crc
 
Toma de decisiones If Else
Toma de decisiones If ElseToma de decisiones If Else
Toma de decisiones If Else
 
GRAFOS EULERIANOS Y HAMILTONIANOS
GRAFOS EULERIANOS Y HAMILTONIANOSGRAFOS EULERIANOS Y HAMILTONIANOS
GRAFOS EULERIANOS Y HAMILTONIANOS
 
U1.5 Álgebra Declarativa
U1.5 Álgebra DeclarativaU1.5 Álgebra Declarativa
U1.5 Álgebra Declarativa
 
Metodos numericos 5
Metodos numericos 5Metodos numericos 5
Metodos numericos 5
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Polinomios de taylor
Polinomios de taylorPolinomios de taylor
Polinomios de taylor
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en C
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Integración numérica muy bueno
Integración numérica muy buenoIntegración numérica muy bueno
Integración numérica muy bueno
 
Espacios vectoriales diapositivas
Espacios vectoriales diapositivasEspacios vectoriales diapositivas
Espacios vectoriales diapositivas
 
Guia 3 matlab
Guia 3 matlabGuia 3 matlab
Guia 3 matlab
 
Estructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y HamiltonianosEstructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y Hamiltonianos
 
Demostracion del Teorema de Pascal en combinatoria, Algebra Superior
Demostracion del Teorema de Pascal en combinatoria, Algebra SuperiorDemostracion del Teorema de Pascal en combinatoria, Algebra Superior
Demostracion del Teorema de Pascal en combinatoria, Algebra Superior
 
Perfiles UML
Perfiles UMLPerfiles UML
Perfiles UML
 
Logica de primer orden
Logica de primer ordenLogica de primer orden
Logica de primer orden
 
Metodo del anulador
Metodo del anuladorMetodo del anulador
Metodo del anulador
 
Presentación de series infinitas
Presentación de series infinitasPresentación de series infinitas
Presentación de series infinitas
 
Respuestas.ejercicios
Respuestas.ejerciciosRespuestas.ejercicios
Respuestas.ejercicios
 

Destacado

Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosJaro
 
Electronica introduccion y repaso
Electronica introduccion y repasoElectronica introduccion y repaso
Electronica introduccion y repasoVelmuz Buzz
 
Analisis de Redes Electricas I (8)
Analisis de Redes Electricas I (8)Analisis de Redes Electricas I (8)
Analisis de Redes Electricas I (8)Velmuz Buzz
 
Analisis_Algoritmo_Teorema_maestro
Analisis_Algoritmo_Teorema_maestroAnalisis_Algoritmo_Teorema_maestro
Analisis_Algoritmo_Teorema_maestroVelmuz Buzz
 
Organizacion_Computadores4
Organizacion_Computadores4Organizacion_Computadores4
Organizacion_Computadores4Velmuz Buzz
 
Organizacion_Computadores6
Organizacion_Computadores6Organizacion_Computadores6
Organizacion_Computadores6Velmuz Buzz
 
Electronica aplicaciones de diodos
Electronica aplicaciones de diodosElectronica aplicaciones de diodos
Electronica aplicaciones de diodosVelmuz Buzz
 
Electronica polarizacion tipo h
Electronica polarizacion tipo hElectronica polarizacion tipo h
Electronica polarizacion tipo hVelmuz Buzz
 
Diapositivas redes i__unidad__3_primera_parte_fondo_blanco
Diapositivas redes i__unidad__3_primera_parte_fondo_blancoDiapositivas redes i__unidad__3_primera_parte_fondo_blanco
Diapositivas redes i__unidad__3_primera_parte_fondo_blancoVelmuz Buzz
 
Examen final ii termino 2007
Examen final ii termino 2007Examen final ii termino 2007
Examen final ii termino 2007Velmuz Buzz
 
Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2Velmuz Buzz
 
Interfaz_Grafica_POO
Interfaz_Grafica_POOInterfaz_Grafica_POO
Interfaz_Grafica_POOVelmuz Buzz
 
Laboratorio_de_Redes_Electricas(1)
Laboratorio_de_Redes_Electricas(1)Laboratorio_de_Redes_Electricas(1)
Laboratorio_de_Redes_Electricas(1)Velmuz Buzz
 
Analisis_Algoritmo_Ecuacion de recurrencia
Analisis_Algoritmo_Ecuacion de recurrenciaAnalisis_Algoritmo_Ecuacion de recurrencia
Analisis_Algoritmo_Ecuacion de recurrenciaVelmuz Buzz
 
Conceptos Básicos de la Computadora
Conceptos Básicos de la ComputadoraConceptos Básicos de la Computadora
Conceptos Básicos de la ComputadoraVelmuz Buzz
 
Electronica modelaje de transitores bipolares
Electronica  modelaje de transitores bipolaresElectronica  modelaje de transitores bipolares
Electronica modelaje de transitores bipolaresVelmuz Buzz
 
Ecuaciones diferenciales leccion1
Ecuaciones diferenciales   leccion1Ecuaciones diferenciales   leccion1
Ecuaciones diferenciales leccion1Velmuz Buzz
 
Resolucion fisica c_final2006ti
Resolucion fisica c_final2006tiResolucion fisica c_final2006ti
Resolucion fisica c_final2006tiVelmuz Buzz
 

Destacado (20)

Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
 
Javadoc
JavadocJavadoc
Javadoc
 
Electronica introduccion y repaso
Electronica introduccion y repasoElectronica introduccion y repaso
Electronica introduccion y repaso
 
Analisis de Redes Electricas I (8)
Analisis de Redes Electricas I (8)Analisis de Redes Electricas I (8)
Analisis de Redes Electricas I (8)
 
Analisis_Algoritmo_Teorema_maestro
Analisis_Algoritmo_Teorema_maestroAnalisis_Algoritmo_Teorema_maestro
Analisis_Algoritmo_Teorema_maestro
 
Organizacion_Computadores4
Organizacion_Computadores4Organizacion_Computadores4
Organizacion_Computadores4
 
Organizacion_Computadores6
Organizacion_Computadores6Organizacion_Computadores6
Organizacion_Computadores6
 
Electronica aplicaciones de diodos
Electronica aplicaciones de diodosElectronica aplicaciones de diodos
Electronica aplicaciones de diodos
 
Electronica polarizacion tipo h
Electronica polarizacion tipo hElectronica polarizacion tipo h
Electronica polarizacion tipo h
 
Diapositivas redes i__unidad__3_primera_parte_fondo_blanco
Diapositivas redes i__unidad__3_primera_parte_fondo_blancoDiapositivas redes i__unidad__3_primera_parte_fondo_blanco
Diapositivas redes i__unidad__3_primera_parte_fondo_blanco
 
Sd5
Sd5Sd5
Sd5
 
Examen final ii termino 2007
Examen final ii termino 2007Examen final ii termino 2007
Examen final ii termino 2007
 
Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2
 
Interfaz_Grafica_POO
Interfaz_Grafica_POOInterfaz_Grafica_POO
Interfaz_Grafica_POO
 
Laboratorio_de_Redes_Electricas(1)
Laboratorio_de_Redes_Electricas(1)Laboratorio_de_Redes_Electricas(1)
Laboratorio_de_Redes_Electricas(1)
 
Analisis_Algoritmo_Ecuacion de recurrencia
Analisis_Algoritmo_Ecuacion de recurrenciaAnalisis_Algoritmo_Ecuacion de recurrencia
Analisis_Algoritmo_Ecuacion de recurrencia
 
Conceptos Básicos de la Computadora
Conceptos Básicos de la ComputadoraConceptos Básicos de la Computadora
Conceptos Básicos de la Computadora
 
Electronica modelaje de transitores bipolares
Electronica  modelaje de transitores bipolaresElectronica  modelaje de transitores bipolares
Electronica modelaje de transitores bipolares
 
Ecuaciones diferenciales leccion1
Ecuaciones diferenciales   leccion1Ecuaciones diferenciales   leccion1
Ecuaciones diferenciales leccion1
 
Resolucion fisica c_final2006ti
Resolucion fisica c_final2006tiResolucion fisica c_final2006ti
Resolucion fisica c_final2006ti
 

Similar a Analisis_Algoritmo_Quicksort

Similar a Analisis_Algoritmo_Quicksort (20)

Analisis_Algoritmo_Division y conquista
Analisis_Algoritmo_Division y conquistaAnalisis_Algoritmo_Division y conquista
Analisis_Algoritmo_Division y conquista
 
Cadenas de Markov
Cadenas de MarkovCadenas de Markov
Cadenas de Markov
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Aplicacion RK4
Aplicacion RK4Aplicacion RK4
Aplicacion RK4
 
Sistemas+masa+ +resorte+movimiento+libre+amortiguado
Sistemas+masa+ +resorte+movimiento+libre+amortiguadoSistemas+masa+ +resorte+movimiento+libre+amortiguado
Sistemas+masa+ +resorte+movimiento+libre+amortiguado
 
Informe aplica 2
Informe aplica 2Informe aplica 2
Informe aplica 2
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Reporte del.Equipo Cuatro
Reporte del.Equipo CuatroReporte del.Equipo Cuatro
Reporte del.Equipo Cuatro
 
Modelos 3 __adveccion
Modelos 3 __adveccionModelos 3 __adveccion
Modelos 3 __adveccion
 
Hamilton Lagrange
Hamilton LagrangeHamilton Lagrange
Hamilton Lagrange
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Velocidad de descenso de un paracaídas
Velocidad de descenso de un paracaídasVelocidad de descenso de un paracaídas
Velocidad de descenso de un paracaídas
 
Mate derivadas
Mate derivadasMate derivadas
Mate derivadas
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
 
Metodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesMetodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferenciales
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
 
Clase N° 2.pdf
Clase N° 2.pdfClase N° 2.pdf
Clase N° 2.pdf
 

Más de Velmuz Buzz

Ecuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenEcuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenVelmuz Buzz
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de ProgramacionVelmuz Buzz
 
Capa de Aplicacion
Capa de AplicacionCapa de Aplicacion
Capa de AplicacionVelmuz Buzz
 
Capa de Transporte
Capa de TransporteCapa de Transporte
Capa de TransporteVelmuz Buzz
 
Estructura Organizacional
Estructura OrganizacionalEstructura Organizacional
Estructura OrganizacionalVelmuz Buzz
 
Inteligencia artificial sistema experto
Inteligencia artificial sistema expertoInteligencia artificial sistema experto
Inteligencia artificial sistema expertoVelmuz Buzz
 
Electronica transistores
Electronica transistoresElectronica transistores
Electronica transistoresVelmuz Buzz
 
Electronica rectificadores
Electronica rectificadoresElectronica rectificadores
Electronica rectificadoresVelmuz Buzz
 
Electronica polarizacion
Electronica polarizacionElectronica polarizacion
Electronica polarizacionVelmuz Buzz
 
Electronica funcion de transferencia
Electronica funcion de transferenciaElectronica funcion de transferencia
Electronica funcion de transferenciaVelmuz Buzz
 
Electronica ejercicios
Electronica ejerciciosElectronica ejercicios
Electronica ejerciciosVelmuz Buzz
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fetVelmuz Buzz
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fetVelmuz Buzz
 
Electronica transitores efecto de cambio
Electronica transitores efecto de cambioElectronica transitores efecto de cambio
Electronica transitores efecto de cambioVelmuz Buzz
 
Circuito secuencial sincronico sd ii
Circuito secuencial sincronico sd iiCircuito secuencial sincronico sd ii
Circuito secuencial sincronico sd iiVelmuz Buzz
 
Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2Velmuz Buzz
 
Olap vs oltp bases datos 2
Olap vs oltp bases datos 2Olap vs oltp bases datos 2
Olap vs oltp bases datos 2Velmuz Buzz
 

Más de Velmuz Buzz (20)

Ecuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenEcuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er Orden
 
Ruby
Ruby Ruby
Ruby
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacion
 
Capa de Aplicacion
Capa de AplicacionCapa de Aplicacion
Capa de Aplicacion
 
Capa de Transporte
Capa de TransporteCapa de Transporte
Capa de Transporte
 
Capa Red
Capa RedCapa Red
Capa Red
 
Capa Enlace
Capa Enlace Capa Enlace
Capa Enlace
 
Estructura Organizacional
Estructura OrganizacionalEstructura Organizacional
Estructura Organizacional
 
Inteligencia artificial sistema experto
Inteligencia artificial sistema expertoInteligencia artificial sistema experto
Inteligencia artificial sistema experto
 
Electronica transistores
Electronica transistoresElectronica transistores
Electronica transistores
 
Electronica rectificadores
Electronica rectificadoresElectronica rectificadores
Electronica rectificadores
 
Electronica polarizacion
Electronica polarizacionElectronica polarizacion
Electronica polarizacion
 
Electronica funcion de transferencia
Electronica funcion de transferenciaElectronica funcion de transferencia
Electronica funcion de transferencia
 
Electronica ejercicios
Electronica ejerciciosElectronica ejercicios
Electronica ejercicios
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
 
Electronica transitores efecto de cambio
Electronica transitores efecto de cambioElectronica transitores efecto de cambio
Electronica transitores efecto de cambio
 
Circuito secuencial sincronico sd ii
Circuito secuencial sincronico sd iiCircuito secuencial sincronico sd ii
Circuito secuencial sincronico sd ii
 
Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2
 
Olap vs oltp bases datos 2
Olap vs oltp bases datos 2Olap vs oltp bases datos 2
Olap vs oltp bases datos 2
 

Analisis_Algoritmo_Quicksort

  • 1. Quicksort <br />En esta clase se estudio el algoritmo quicksort, un método para ordenar vectores diseñado por división y conquista. Se explicó que la división del problema en subproblemas se realiza mediante la función partición, que divide el vector que se quiere ordenar en dos segmentos, el uno que contiene elementos menor o igual que el pivote, el otro que contiene elementos mayor o igual que el pivote; el elemento pivote se puede escoger de muchas diferentes maneras, pero en este curso lo vamos a tomar al primer elemento del segmento que se quiere partir. La conquista consiste en ordenar cada uno de los segmentos resultantes de la partición y lo haremos utilizando el mismo método quicksort. El paso de combinación consiste en hacer nada.<br />Luego se explicó la manera en que se realiza la operación partición, y se calculó el tiempo de ejecución de este algoritmo:<br />t(n) pertenece a teta(n)<br />Mas adelante se encontró la ecuación de recurrencia para el tiempo de ejecución del algoritmo quicksort para un caso cualquiera, donde la partición ocurre de tal manera que los subproblemas que resultan son de tamaño k y n-k, respectivamente.<br />t(n) = t(k) + t(n-k) + teta(n)<br />t(1) = 1<br />La segunda ecuación es la condición de borde, que corresponde al caso en que los subproblemas que resultan en el proceso de división son de tamaño 1, para los cuales tomamos el tiempo de ejecución 1 tambien.<br />Resolvimos la ecuación para dos casos particulares: el mejor y el peor de los casos. El mejor de los casos ocurre cuando la partición divide al vector que se ordena por la mitad; entonces k es aproximadamente n/2, y la ecuación de recurrencia queda así:<br />t(n) = 2·t(n/2) + n<br />que es una ecuación que ya hemos resuelto tres veces, cuya solución es <br />t(n) pertenece a teta(n·ln(n))<br />que es el mejor de los tiempos que se puede obtener para ordenar vectores.<br />Luego calculamos el tiempo de ejecución de quicksort para el peor de los casos; este ocurre cuando uno de los segmentos que resultan de la partición tiene un solo elemento y el otro los restantes; la ecuación de recurrencia se reduce entonces a:<br />t(n) = t(1) + t(n-k) + n<br />t(1) = 1<br />Se resolvió esta ecuación por iteración, usando el árbol recursivo, pues no se puede aplicar el teorema maestro, y se obtuvo:<br />t(n) pertenece a teta(n2)<br />Lo que que muestra que en el peor de los casos el algoritmo quicksort se comporta como los métodos mas malos que se conocen para ordenar vectores.<br />Se dijo que el comportamiento promedio de quicksort es como el del mejor de los casos; razón por la cual quicksort es uno de los métodos mas populares; además, su implementación pequeña. <br />qs(A, i, j)<br />si i distinta de j<br />k <- partición(A, i, j)<br />qs(A, i, k)<br />qs(A, k+1, j)<br />Finalmente se elaboró una tabla con los tiempos de ejecución promedio, mejor y peor de los casos, para los métodos de ordenar vectores que se han estudiado hasta ahora.<br />Se enunció la regla de oro que dice que el tiempo promedio de ejecución de un algoritmo tiene el mismo comportamiento que el del peor de los caso; esta regla tiene, sin embargo, excepciones, como en el caso de quicksort.<br /> <br />