Este documento trata sobre algoritmos de búsqueda y ordenamiento. Explica la búsqueda secuencial, la búsqueda binaria y tres algoritmos de ordenamiento: burbuja, selección e inserción. También analiza la eficiencia de estos algoritmos en términos del número de comparaciones requeridas, concluyendo que la búsqueda binaria es más eficiente que la secuencial al requerir O(log n) comparaciones en el peor caso.
Este documento trata sobre cadenas en C. Explica cómo se representan las cadenas en C como arreglos unidimensionales de caracteres terminados por un carácter nulo. También cubre temas como la lectura de cadenas desde el teclado, las bibliotecas estándar ctype.h y string.h para la manipulación de cadenas, y la conversión de tipos entre cadenas y otros tipos de datos en C. Finalmente, incluye algunos ejercicios de práctica sobre estos temas.
Se muestran y definen diferentes funciones, gráficas y su relación con los modelos matemáticos. Se analiza qué es un límite y los diferentes teoremas acerca de aquello. Finalmente, se estudia continuidad de una función en un número.
Matemáticas 2
Facultad de Arquitectura y Urbanismo
Universidad de Cuenca
Antiderivación
Técnicas de antiderivación
Área
Integral definida
Teorema del valor medio
Teorema fundamental del cálculo
Área de una región plana
Volúmenes de solidos
Valores extremos y comportamiento de las funciones y de sus gráficasAngel Vázquez Patiño
Extremos mínimos y máximos. Crecimiento y decrecimiento de una función. Concavidad de una función. Límites al infinito. Asíntotas horizontales y oblicuas. Análisis de funciones.
Este documento presenta el plan de estudios para el curso de Matemáticas 1. El curso cubrirá temas como derivada y diferenciación, movimiento rectilíneo, derivadas de funciones trigonométricas y la regla de la cadena. El objetivo es que los estudiantes comprendan conceptos como interpretación geométrica de la derivada, relación entre diferenciabilidad y continuidad, y tasas de variación relacionadas. El curso será impartido por Angel Vázquez-Patiño de la Universidad de Cuenca.
Causality and climate networks approaches for evaluating climate models, trac...Angel Vázquez Patiño
Climate consists of many components, for example, atmosphere, hydrosphere, cryosphere, and biosphere. All the components act under mechanisms that relate them in a highly nonlinear way, making the climate a complex system. This complexity is a challenge to study the climate and its implications at various spatiotemporal scales. However, the dependence of anthropogenic activities on the climate has encouraged its study in order, for example, to anticipate its periodic changes and, as far as possible, extreme events that may have adverse effects. As climate study is an intricate task, several approaches
have been used to unravel the underlying processes that dominate its behavior. Those approaches range from linear correlation analysis to complex machine learning-based knowledge discovery analysis. This last approach has become more relevant after the introduction of sophisticated climate simulation models and high-tech equipment (e.g., satellite) that allow a climate record of greater coverage (spatial and temporal) and that, together, have generated ubiquitous large databases. One of the knowledge discovery approaches based on this big data is based on climate networks. Nevertheless, causal reasoning methods have also been used recently to infer and characterize these networks, which
are called causal climate networks. Several studies have been carried out with climate networks; however, the recent introduction of causality methods makes the study of climate with causal climate networks an opportunity to explore and exploit them more widely. In addition, the particularities of the climate make it
necessary to understand specific operational issues that must be taken into account when applying networks. This thesis aims to propose new methodologies and applications of causal climate networks following as a common thread the characterization of physical phenomena that manifest
themselves at different spatial scales. For this, different case studies have been taken. They are the climate in South America and a large part of the Pacific and Atlantic oceans, then, reducing the scale, the surrounding factors that influence the rainfall of Ecuador, and, finally, the selection of predictors for downscaling models in an Andean basin. Among the main results are the following three.
First, a methodology for evaluating global climate models based on what is called here as causal flows. Second, an approach that studies causal flows and helps trace influence paths in flow fields. Third, the presentation of evidence that shows the effectiveness of methods based on causality in selecting predictors for downscaling models. The thesis contributes to efforts to bridge the gap between the climate science and causal inference communities. This through the study and application of causal reasoning and taking advantage of the enormous amounts of climate data available today.
Este documento describe los métodos numéricos de diferencias finitas para resolver ecuaciones diferenciales. Explica cómo aproximar derivadas con expresiones algebraicas más simples y cómo aplicar esto para resolver la ecuación de calor. También compara tres métodos: explícito, implícito y Crank-Nicolson, discutiendo sus ventajas y desventajas para este problema.
Este documento describe el método de Frobenius para encontrar soluciones en serie de potencias para ecuaciones diferenciales ordinarias con singularidades regulares. Explica que las singularidades son puntos donde las funciones de la ecuación no son analíticas y divide las singularidades en regulares e irregulares. Para singularidades regulares, el método de Frobenius busca soluciones en la forma de una serie de Frobenius centrada en el punto singular, lo que permite determinar valores para los coeficientes que hacen que la serie sea una solución válida localmente.
Este documento trata sobre cadenas en C. Explica cómo se representan las cadenas en C como arreglos unidimensionales de caracteres terminados por un carácter nulo. También cubre temas como la lectura de cadenas desde el teclado, las bibliotecas estándar ctype.h y string.h para la manipulación de cadenas, y la conversión de tipos entre cadenas y otros tipos de datos en C. Finalmente, incluye algunos ejercicios de práctica sobre estos temas.
Se muestran y definen diferentes funciones, gráficas y su relación con los modelos matemáticos. Se analiza qué es un límite y los diferentes teoremas acerca de aquello. Finalmente, se estudia continuidad de una función en un número.
Matemáticas 2
Facultad de Arquitectura y Urbanismo
Universidad de Cuenca
Antiderivación
Técnicas de antiderivación
Área
Integral definida
Teorema del valor medio
Teorema fundamental del cálculo
Área de una región plana
Volúmenes de solidos
Valores extremos y comportamiento de las funciones y de sus gráficasAngel Vázquez Patiño
Extremos mínimos y máximos. Crecimiento y decrecimiento de una función. Concavidad de una función. Límites al infinito. Asíntotas horizontales y oblicuas. Análisis de funciones.
Este documento presenta el plan de estudios para el curso de Matemáticas 1. El curso cubrirá temas como derivada y diferenciación, movimiento rectilíneo, derivadas de funciones trigonométricas y la regla de la cadena. El objetivo es que los estudiantes comprendan conceptos como interpretación geométrica de la derivada, relación entre diferenciabilidad y continuidad, y tasas de variación relacionadas. El curso será impartido por Angel Vázquez-Patiño de la Universidad de Cuenca.
Causality and climate networks approaches for evaluating climate models, trac...Angel Vázquez Patiño
Climate consists of many components, for example, atmosphere, hydrosphere, cryosphere, and biosphere. All the components act under mechanisms that relate them in a highly nonlinear way, making the climate a complex system. This complexity is a challenge to study the climate and its implications at various spatiotemporal scales. However, the dependence of anthropogenic activities on the climate has encouraged its study in order, for example, to anticipate its periodic changes and, as far as possible, extreme events that may have adverse effects. As climate study is an intricate task, several approaches
have been used to unravel the underlying processes that dominate its behavior. Those approaches range from linear correlation analysis to complex machine learning-based knowledge discovery analysis. This last approach has become more relevant after the introduction of sophisticated climate simulation models and high-tech equipment (e.g., satellite) that allow a climate record of greater coverage (spatial and temporal) and that, together, have generated ubiquitous large databases. One of the knowledge discovery approaches based on this big data is based on climate networks. Nevertheless, causal reasoning methods have also been used recently to infer and characterize these networks, which
are called causal climate networks. Several studies have been carried out with climate networks; however, the recent introduction of causality methods makes the study of climate with causal climate networks an opportunity to explore and exploit them more widely. In addition, the particularities of the climate make it
necessary to understand specific operational issues that must be taken into account when applying networks. This thesis aims to propose new methodologies and applications of causal climate networks following as a common thread the characterization of physical phenomena that manifest
themselves at different spatial scales. For this, different case studies have been taken. They are the climate in South America and a large part of the Pacific and Atlantic oceans, then, reducing the scale, the surrounding factors that influence the rainfall of Ecuador, and, finally, the selection of predictors for downscaling models in an Andean basin. Among the main results are the following three.
First, a methodology for evaluating global climate models based on what is called here as causal flows. Second, an approach that studies causal flows and helps trace influence paths in flow fields. Third, the presentation of evidence that shows the effectiveness of methods based on causality in selecting predictors for downscaling models. The thesis contributes to efforts to bridge the gap between the climate science and causal inference communities. This through the study and application of causal reasoning and taking advantage of the enormous amounts of climate data available today.
Este documento describe los métodos numéricos de diferencias finitas para resolver ecuaciones diferenciales. Explica cómo aproximar derivadas con expresiones algebraicas más simples y cómo aplicar esto para resolver la ecuación de calor. También compara tres métodos: explícito, implícito y Crank-Nicolson, discutiendo sus ventajas y desventajas para este problema.
Este documento describe el método de Frobenius para encontrar soluciones en serie de potencias para ecuaciones diferenciales ordinarias con singularidades regulares. Explica que las singularidades son puntos donde las funciones de la ecuación no son analíticas y divide las singularidades en regulares e irregulares. Para singularidades regulares, el método de Frobenius busca soluciones en la forma de una serie de Frobenius centrada en el punto singular, lo que permite determinar valores para los coeficientes que hacen que la serie sea una solución válida localmente.
Este documento describe el método de las series para resolver ecuaciones diferenciales ordinarias (EDOs). Explica que cuando las soluciones de EDOs no pueden expresarse en términos de funciones elementales, se puede usar este método. Detalla los conceptos clave de series de Taylor y potencias, y los teoremas relacionados. También presenta dos métodos para obtener soluciones de EDOs lineales mediante series: diferenciaciones sucesivas y coeficientes indeterminados.
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Angel Vázquez Patiño
Este documento presenta métodos para resolver sistemas de ecuaciones diferenciales de primer orden y no lineales de orden mayor a uno mediante series. Explica que si cada función puede expresarse como una expansión de Taylor, existirá un conjunto de funciones que satisfacen el sistema y sus condiciones iniciales. También indica que para sistemas lineales y ecuaciones no lineales de orden mayor, las soluciones también pueden escribirse como series de potencias si los términos cumplen ciertas condiciones.
El documento describe dos sistemas de ecuaciones diferenciales que modelan interacciones biológicas. El primer sistema modela la dinámica de dos masas unidas por tres resortes, derivando ecuaciones del movimiento para cada masa. El segundo sistema modela la interacción entre una población huésped y una población parasitaria, derivando ecuaciones que describen cómo cambian las poblaciones con el tiempo. Ambos sistemas se resuelven analíticamente considerando diferentes simplificaciones y condiciones iniciales.
Este documento describe el proceso de linealización de sistemas de ecuaciones diferenciales de primer orden. Primero, se expanden las funciones f(x,y) y g(x,y) en series de Taylor usando los primeros 3 términos. Luego, se elimina el parámetro t dividiendo una ecuación por la otra, dando como resultado una ecuación lineal aproximada cuya solución dará la trayectoria aproximada de la partícula. Finalmente, se discuten varios casos posibles para la ecuación resultante dependiendo de los valores de
Este documento describe métodos para resolver sistemas de ecuaciones diferenciales lineales, incluyendo convertirlos en sistemas triangulares equivalentes y usar transformadas de Laplace. Explica que las soluciones de estos sistemas involucran funciones que satisfacen todas las ecuaciones simultáneamente y pueden involucrar constantes arbitrarias.
Este documento describe el método de la secante para encontrar ceros de funciones. Explica que el método de la secante es similar al método de Newton, pero no requiere la derivada analítica de la función, sino que usa una tasa de cambio incremental basada en valores de la función calculados previamente. Luego detalla los pasos del método de la secante para iterar entre dos puntos iniciales y converger a un cero de la función. Finalmente, presenta un ejemplo numérico mostrando la convergencia del método al resolver una ecuación.
Se explica lo que son los puntos fijos de una función, la condición para la existencia de un punto fijo, unicidad y convergencia del método y cómo aplicarlo para encontrar ceros de funciones.
Clase: https://youtu.be/2N9hyoUKwgE
Se indica cómo el intérprete trabaja cuando se interactua con objetos y cuando se lo hace usando variables para hacer referencia a dichos objetos. Además, se indica, con un ejemplo, la importancia de poner nombres nemotécnicos/descriptivos a las variables.
Clase: https://youtu.be/e_rwM31VnLU
Este documento define los conceptos de error, exactitud y precisión en métodos numéricos. Explica que los métodos numéricos dan sólo aproximaciones debido a limitaciones como la capacidad finita de los computadores. Define error verdadero, error relativo verdadero y error relativo aproximado. Además, explica cómo escoger un umbral de error para obtener una cantidad aproximada de cifras significativas.
Se presentan los fundamentos de computación y nociones básicas acerca de la resolución de problemas mediante la computación. Se indica lo que es el conocimiento imperativo, los algoritmos y los componentes de un lenguaje de programación.
La clase está en https://youtu.be/lRmk1wJBwTc
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Angel Vázquez Patiño
Granger causal strength networks as metric for measuring GCMs performance.
Everything presented resulted in the following scientific article: Vázquez‐Patiño, A., Campozano, L., Mendoza, D., Samaniego, E., 2020. A causal flow approach for the evaluation of global climate models. Int J Climatol 1–21. https://doi.org/10.1002/joc.6470
El documento describe la caracterización del río Tomebamba en Cuenca a través de representaciones gráficas como curvas de nivel, mapas topográficos, cuenca hidrográfica, perfiles topográficos y áreas de inundación. Se utilizaron herramientas como QGIS, GRASS y DEM para generar estas representaciones y visualizar aspectos fundamentales del río como su relieve y áreas sujetas a inundación.
Comparación de redes causales climáticas mslp vs ght y tpw vs omegaAngel Vázquez Patiño
Comparación de resultados de redes causales climáticas entre variables de superficie (mslp vs ght) y variables a un nivel de 925 hPa (tpw vs omega).
Mean sea level pressure
Geopotential height
Total precipitation water
NCEP DOE Reanalysis 2
Everything presented resulted in the following scientific article: Vázquez‐Patiño, A., Campozano, L., Mendoza, D., Samaniego, E., 2020. A causal flow approach for the evaluation of global climate models. Int J Climatol 1–21. https://doi.org/10.1002/joc.6470
Evaluación de índices de clima extremo de datos los modelos de clima global d...Angel Vázquez Patiño
The reliability of climate models depends ultimately on their adequacy in relevant real situations. However, climate in mountains, a very sensitive system, is scarcely monitored, making the assessment of global climate models (GCMs) projections problematic. This is even more critical for tropical mountain regions, where complex atmospheric processes acting across scales are specially challenging for GCMs. To help bridge this gap, we evaluated the representation of extreme climate indices by GCMs and reanalysis data in the Andes of Ecuador. This work presents an intercomparison of 11 climate precipitation indices (Climate Change Detection and Indices, ETCCDIs) reconstructed for the period 1 January 1981–31 December 2000 using the data of six climate stations situated in a medium-sized Andean catchment in southern Ecuador, reanalysis data sets (RAD) ERA40, ERA-Interim, NCEP/NCAR Reanalysis 1 (NCEP/NCAR-R1) and NCEP/DOE Reanalysis 2 (NCEP/DOE-R2), and the data sets of 19 and 29 models of the Coupled Model Intercomparison Project, Phases 3 and 5 (CMIP3&5). Temporal and spatial analysis highlights that the values and the variability of ETCCDIs based on reanalysis and CMIP3&5 data overestimate observations, especially in ENSO years. However, frequency-type indices are in general better captured than amount-related indices in RAD. In general, reanalysis data displayed a similar uncertainty as the CMIP model data sets and some indices present lower uncertainty. The uncertainty of ETCCDIs based on CMIP5 remains similar to CMIP3 GCMs, with small variations. The indices using NCEP/NCAR-R1, NCEP/DOE-R2, and ERA-Interim data performed better than those obtained with the ERA40 data sets, with no discernible improvement between both NCEP products. It can be concluded that for the given study region CMIP3&5 models and reanalysis products with respectively good and poor performance, exist, however data should be carefully screened before use. Furthermore, these results confirm that the specificity of the studied region is a key to identify limiting aspects on the GCMs and reanalysis extreme climate representation.
Este documento discute los conceptos clave de la evaluación de hipótesis en machine learning. Explica que se necesitan métricas para determinar qué tan buena o mala es una hipótesis generada por un algoritmo ML y comparar varias hipótesis y algoritmos. Luego describe algunas métricas comunes como porcentajes de clasificación, error medio cuadrado y grupos obtenidos versus esperados. Finalmente, se enfoca en métricas detalladas como la curva ROC y el área bajo la curva, que permiten una evaluación más completa.
Se explica la construcción de un árbol de decisión que clasifique un grupo de datos de entrenamiento y cómo utilizar un árbol de decisión para realizar la clasificación de datos de prueba.
Este documento describe el método de las series para resolver ecuaciones diferenciales ordinarias (EDOs). Explica que cuando las soluciones de EDOs no pueden expresarse en términos de funciones elementales, se puede usar este método. Detalla los conceptos clave de series de Taylor y potencias, y los teoremas relacionados. También presenta dos métodos para obtener soluciones de EDOs lineales mediante series: diferenciaciones sucesivas y coeficientes indeterminados.
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Angel Vázquez Patiño
Este documento presenta métodos para resolver sistemas de ecuaciones diferenciales de primer orden y no lineales de orden mayor a uno mediante series. Explica que si cada función puede expresarse como una expansión de Taylor, existirá un conjunto de funciones que satisfacen el sistema y sus condiciones iniciales. También indica que para sistemas lineales y ecuaciones no lineales de orden mayor, las soluciones también pueden escribirse como series de potencias si los términos cumplen ciertas condiciones.
El documento describe dos sistemas de ecuaciones diferenciales que modelan interacciones biológicas. El primer sistema modela la dinámica de dos masas unidas por tres resortes, derivando ecuaciones del movimiento para cada masa. El segundo sistema modela la interacción entre una población huésped y una población parasitaria, derivando ecuaciones que describen cómo cambian las poblaciones con el tiempo. Ambos sistemas se resuelven analíticamente considerando diferentes simplificaciones y condiciones iniciales.
Este documento describe el proceso de linealización de sistemas de ecuaciones diferenciales de primer orden. Primero, se expanden las funciones f(x,y) y g(x,y) en series de Taylor usando los primeros 3 términos. Luego, se elimina el parámetro t dividiendo una ecuación por la otra, dando como resultado una ecuación lineal aproximada cuya solución dará la trayectoria aproximada de la partícula. Finalmente, se discuten varios casos posibles para la ecuación resultante dependiendo de los valores de
Este documento describe métodos para resolver sistemas de ecuaciones diferenciales lineales, incluyendo convertirlos en sistemas triangulares equivalentes y usar transformadas de Laplace. Explica que las soluciones de estos sistemas involucran funciones que satisfacen todas las ecuaciones simultáneamente y pueden involucrar constantes arbitrarias.
Este documento describe el método de la secante para encontrar ceros de funciones. Explica que el método de la secante es similar al método de Newton, pero no requiere la derivada analítica de la función, sino que usa una tasa de cambio incremental basada en valores de la función calculados previamente. Luego detalla los pasos del método de la secante para iterar entre dos puntos iniciales y converger a un cero de la función. Finalmente, presenta un ejemplo numérico mostrando la convergencia del método al resolver una ecuación.
Se explica lo que son los puntos fijos de una función, la condición para la existencia de un punto fijo, unicidad y convergencia del método y cómo aplicarlo para encontrar ceros de funciones.
Clase: https://youtu.be/2N9hyoUKwgE
Se indica cómo el intérprete trabaja cuando se interactua con objetos y cuando se lo hace usando variables para hacer referencia a dichos objetos. Además, se indica, con un ejemplo, la importancia de poner nombres nemotécnicos/descriptivos a las variables.
Clase: https://youtu.be/e_rwM31VnLU
Este documento define los conceptos de error, exactitud y precisión en métodos numéricos. Explica que los métodos numéricos dan sólo aproximaciones debido a limitaciones como la capacidad finita de los computadores. Define error verdadero, error relativo verdadero y error relativo aproximado. Además, explica cómo escoger un umbral de error para obtener una cantidad aproximada de cifras significativas.
Se presentan los fundamentos de computación y nociones básicas acerca de la resolución de problemas mediante la computación. Se indica lo que es el conocimiento imperativo, los algoritmos y los componentes de un lenguaje de programación.
La clase está en https://youtu.be/lRmk1wJBwTc
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Angel Vázquez Patiño
Granger causal strength networks as metric for measuring GCMs performance.
Everything presented resulted in the following scientific article: Vázquez‐Patiño, A., Campozano, L., Mendoza, D., Samaniego, E., 2020. A causal flow approach for the evaluation of global climate models. Int J Climatol 1–21. https://doi.org/10.1002/joc.6470
El documento describe la caracterización del río Tomebamba en Cuenca a través de representaciones gráficas como curvas de nivel, mapas topográficos, cuenca hidrográfica, perfiles topográficos y áreas de inundación. Se utilizaron herramientas como QGIS, GRASS y DEM para generar estas representaciones y visualizar aspectos fundamentales del río como su relieve y áreas sujetas a inundación.
Comparación de redes causales climáticas mslp vs ght y tpw vs omegaAngel Vázquez Patiño
Comparación de resultados de redes causales climáticas entre variables de superficie (mslp vs ght) y variables a un nivel de 925 hPa (tpw vs omega).
Mean sea level pressure
Geopotential height
Total precipitation water
NCEP DOE Reanalysis 2
Everything presented resulted in the following scientific article: Vázquez‐Patiño, A., Campozano, L., Mendoza, D., Samaniego, E., 2020. A causal flow approach for the evaluation of global climate models. Int J Climatol 1–21. https://doi.org/10.1002/joc.6470
Evaluación de índices de clima extremo de datos los modelos de clima global d...Angel Vázquez Patiño
The reliability of climate models depends ultimately on their adequacy in relevant real situations. However, climate in mountains, a very sensitive system, is scarcely monitored, making the assessment of global climate models (GCMs) projections problematic. This is even more critical for tropical mountain regions, where complex atmospheric processes acting across scales are specially challenging for GCMs. To help bridge this gap, we evaluated the representation of extreme climate indices by GCMs and reanalysis data in the Andes of Ecuador. This work presents an intercomparison of 11 climate precipitation indices (Climate Change Detection and Indices, ETCCDIs) reconstructed for the period 1 January 1981–31 December 2000 using the data of six climate stations situated in a medium-sized Andean catchment in southern Ecuador, reanalysis data sets (RAD) ERA40, ERA-Interim, NCEP/NCAR Reanalysis 1 (NCEP/NCAR-R1) and NCEP/DOE Reanalysis 2 (NCEP/DOE-R2), and the data sets of 19 and 29 models of the Coupled Model Intercomparison Project, Phases 3 and 5 (CMIP3&5). Temporal and spatial analysis highlights that the values and the variability of ETCCDIs based on reanalysis and CMIP3&5 data overestimate observations, especially in ENSO years. However, frequency-type indices are in general better captured than amount-related indices in RAD. In general, reanalysis data displayed a similar uncertainty as the CMIP model data sets and some indices present lower uncertainty. The uncertainty of ETCCDIs based on CMIP5 remains similar to CMIP3 GCMs, with small variations. The indices using NCEP/NCAR-R1, NCEP/DOE-R2, and ERA-Interim data performed better than those obtained with the ERA40 data sets, with no discernible improvement between both NCEP products. It can be concluded that for the given study region CMIP3&5 models and reanalysis products with respectively good and poor performance, exist, however data should be carefully screened before use. Furthermore, these results confirm that the specificity of the studied region is a key to identify limiting aspects on the GCMs and reanalysis extreme climate representation.
Este documento discute los conceptos clave de la evaluación de hipótesis en machine learning. Explica que se necesitan métricas para determinar qué tan buena o mala es una hipótesis generada por un algoritmo ML y comparar varias hipótesis y algoritmos. Luego describe algunas métricas comunes como porcentajes de clasificación, error medio cuadrado y grupos obtenidos versus esperados. Finalmente, se enfoca en métricas detalladas como la curva ROC y el área bajo la curva, que permiten una evaluación más completa.
Se explica la construcción de un árbol de decisión que clasifique un grupo de datos de entrenamiento y cómo utilizar un árbol de decisión para realizar la clasificación de datos de prueba.
Aletas de Transferencia de Calor o Superficies Extendidas.pdfJuanAlbertoLugoMadri
Se hablara de las aletas de transferencia de calor y superficies extendidas ya que son muy importantes debido a que son estructuras diseñadas para aumentar el calor entre un fluido, un sólido y en qué sitio son utilizados estos materiales en la vida cotidiana
1. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usquedas y Ordenamientos
Docentes de Programaci´on
Editado por Angel V´azquez-Pati˜no
angel.vazquezp@ucuenca.edu.ec
Departamento de Ciencias de la Computaci´on
Universidad de Cuenca
19 de septiembre de 2017
1 / 53
2. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Objetivos
1. Entender los algoritmos de b´usqueda
2. Entender los algoritmos de ordenamiento
3. Conocer el concepto de eficiencia
4. Tener una idea intuitiva de la eficiencia de los
algoritmos estudiados
2 / 53
3. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Contenido
Algoritmos de b´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Algoritmos de ordenamiento
Utilidad
Clasificaci´on
Algoritmo de ordenamiento de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Ordenamiento de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Fuentes
3 / 53
4. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Utilidad I
Uno de los usos m´as frecuentes de los computadores
es la b´usqueda de informaci´on en estructuras de
datos. La eficiencia de la b´usqueda depende de si la
estructura est´a o no ordenada. E.g., diccionario
Tome un diccionario y b´usque la palabra mundo.
Para encontrarla, ir´a directamente a la secci´on de
palabras que comienzan con m. Luego buscar´a
tomando la siguiente letra de la palabra (u), luego
la n y as´ı sucesivamente. Esto lo puede hacer
porque el diccionario se encuentra ordenado
(b´usqueda binaria)
4 / 53
5. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Utilidad II
Si el diccionario no estuviera ordenado se podr´ıa
tambi´en buscar la palabra recorriendo cada una de
las hojas y revisando cada una de las palabras que
se encuentren en esa hoja. Esto tardar´ıa mucho m´as
(menos eficiencia)(b´usqueda secuencial)
Los tipos de b´usquedas a estudiar tienen semejanza
con los ejemplos dados
5 / 53
6. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda secuencial o lineal
1. Consiste en empezar desde el inicio del arreglo e ir a
trav´es de cada elemento hasta encontrar el valor
buscado o hasta llegar al final
2. El arreglo no requiere estar ordenado
B´usqueda secuencial en arreglos
1. V´ıdeo: https://youtu.be/W3ClRnYb0KM
6 / 53
8. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda binaria o dicot´omica I
Condiciones
1. La estructura debe estar ordenada (ascendente o
descendentemente)
2. Conocer el n´umero de elementos de la estructura
8 / 53
9. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda binaria o dicot´omica II
Algoritmo (orden ascendente)
1. Se compara el valor buscado con el valor localizado
al centro del arreglo
2. Si el valor buscado es localizado, se termina la
b´usqueda
3. Si el valor buscado es menor que el analizado,
repetir proceso en la mitad inferior, sino en la mitad
superior
4. El proceso de partir por la mitad la estructura se
repite hasta encontrar el valor o hasta que el
tama˜no de la estructura restante sea cero (i.e.,
valor no encontrado)
9 / 53
10. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda binaria o dicot´omica III
M´etodo de b´usqueda binaria
1. V´ıdeo 1: https://youtu.be/7qv1An90q2Q
2. V´ıdeo 2: https://youtu.be/7oa1qEPLFps
10 / 53
12. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
Dado el conjunto de n´umeros 23, 12, 44, 9, 3, 8, 1,
7, 0, 2, 4, 55 indique el n´umero de comparaciones
que se deben hacer para encontrar el n´umero 1
utilizando b´usqueda secuencial.
Tome el conjunto de n´umeros dados y utilize la
b´usqueda binaria para encontrar el n´umero 1.
Indique el n´umero de comparaciones realizadas.
Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
12 / 53
15. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda secuencial
En el mejor caso se encontrar´a el valor en el primer
elemento.
En el peor caso se har´an n comparaciones.
El orden de complejidad en el peor caso ser´ıa O(n).
15 / 53
16. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda binaria I
En el mejor caso se encontrar´a el valor en el
elemento del medio (una comparaci´on).
Se har´a el an´alisis para el peor caso.
Inicialmente el n´umero de elementos a analizar es n.
Tras la primera divisi´on, el n´umero de elementos que
queda por analizar es, como mucho, n/2 (pues nos
hemos quedado con la mitad de elementos); tras la
segunda divisi´on, el n´umero de elementos que queda
ser´a, como mucho, n/4; y as´ı sucesivamente.
Por lo general, tras la divisi´on n´umero i, el n´umero
de elementos por analizar ser´a, como mucho,
n
2i
16 / 53
17. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda binaria II
El peor caso se da cuando el elemento a buscar no
se encuentra en el vector (es decir, cuando tras
dividir los elementos por analizar nos quedemos con
un n´umero menor a 1). Por lo tanto, el n´umero
m´aximo de divisiones a realizar es el menor n´umero
m tal que
n
2m
< 1
Transformando esta f´ormula a un logaritmo en base
2:
n < 2m
log2 n < m
es decir, que el n´umero m depende, no del tama˜no
n del arreglo, sino del logaritmo de dicho n.
17 / 53
18. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda binaria III
Es por esto que el algoritmo de b´usqueda binaria
tiene una complejidad de orden logar´ıtmico
O(log2n).
18 / 53
20. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmos de ordenamiento
Definition (Ordenamiento)
Reorganizar elementos de tal manera que cumplan con
un criterio establecido.
e1 < e2 < e3 . . . < en → Ascendente
e1 > e2 > e3 . . . > en → Descendente
20 / 53
21. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Utilidad
Los datos ordenados son f´aciles de encontrar, esto
implica menos operaciones y menos tiempo
(eficiencia).
Existen varios algoritmos de ordenamiento que,
dependiendo de la estrategia, servir´an en mayor o
menor grado para ordenar elementos.
Que un algoritmo sea ingenioso, en este contexto,
significa que ordena el conjunto desordenado con el
menor n´umero posible de comparaciones e
intercambios.
21 / 53
22. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Clasificaci´on de los algoritmos de
ordenamiento
De acuerdo a la memoria utilizada
Internos: cuando la memoria RAM es suficiente
para el procesamiento
Externos: cuando hace falta enviar cantidades de
informaci´on desde la memoria RAM a disco duro.
Esto puede repetirse varias veces
De acuerdo a la estrategia utilizada
B´asicos: burbuja, selecci´on e inserci´on
Eficientes: shell sort, quick sort, radix sort, merge
sort, heap sort, etc.
22 / 53
23. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja I
Idea
Tomar el elemento de mayor valor de un arreglo y
llevarlo al final (ordenamiento ascendente); y esto
repetirlo a todos los elementos
Porqu´e del nombre
Alguien se imagin´o que el elemento que se va
desplazando es como si una burbuja subiera desde el
fondo del agua
23 / 53
24. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja II
Estrategia
1. Recorrer el arreglo desde el elemento 0 con un
iterador i.
2. En cada paso preguntar si el elemento i+1 es menor
al elemento i (ordenamiento ascendente). Si es as´ı,
se intercambian los elementos.
3. As´ı, el elemento mayor quedar´a en el ´ındice mayor
4. Una vez que se llegue al ´ultimo elemento del
arreglo, se comienza de nuevo con el paso 1.
5. Se repite hasta que no haya ning´un intercambio de
elementos.
Algoritmo de burbuja
24 / 53
25. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja III
1. V´ıdeo: https://youtu.be/L3d48etbseY
Pseudoc´odigo
1: for i = 1 hasta n do
2: for j = 0 hasta n-i do
3: if arreglo[j] > arreglo[j+1] then
4: intercambiar(arreglo[j], arreglo[j+1]);
5: end if
6: end for
7: end for
25 / 53
27. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
Usando el m´etodo de la burbuja, ordene
descendentemente el siguiente conjunto de
n´umeros: 9, 3, 8, 1, 7, 0, 2, 4. Indique el n´umero de
pasadas realizadas.
Usando el m´etodo de la burbuja, ordene
ascendentemente el siguiente conjunto de n´umeros:
8, 2, 99, 21, 45, 9, 23. Indique el n´umero de
pasadas realizadas.
Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
27 / 53
28. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on I
Estrategia
1. Se busca el menor de todos los elementos y se le
ubica en la primera posici´on del arreglo.
2. Se busca el menor de entre los elementos que
quedan y se lo intercambia con el primer elemento
del arreglo que queda.
3. Se repite el proceso para todos los elementos del
arreglo.
Algoritmo de selecci´on
1. V´ıdeo 1: https://youtu.be/l0YwcUJB3vo
2. V´ıdeo 2: https://youtu.be/KCvr7eHXEHE
28 / 53
29. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on II
Pseudoc´odigo
1: for i = 0 hasta n-2 do
2: m´ınimo = i;
3: for j = i+1 hasta n-1 do
4: if arreglo[j] < arreglo[m´ınimo] then
5: m´ınimo = j;
6: end if
7: end for
8: intercambiar(arreglo[i], arreglo[m´ınimo]);
9: end for
29 / 53
31. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
1. Ordene, ascendentemente y descendentemente,
usando el algoritmo de selecci´on, el siguiente
conjunto de n´umeros: 6, 2, 11, 23, 1, 5, 4. Indique
el n´umero de pasadas realizadas.
2. Ordene, ascendentemente y descendentemente,
usando el algoritmo de selecci´on, el siguiente
conjunto de letras: K, M, S, C, E, W, P, Q . Indique
el n´umero de pasadas realizadas.
3. Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
31 / 53
32. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on I
Estrategia
1. Se toma el primer elemento del arreglo como el
primer elemento de lo que llamaremos el arreglo
ordenado.
2. Se toma el pr´oximo n´umero del arreglo y se
compara con los elementos del arreglo ordenado,
hasta encontrar su posici´on.
3. Se repite el proceso para todos los elementos del
arreglo.
Algoritmo de inserci´on
32 / 53
33. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on II
1. V´ıdeo 1: https://youtu.be/5kVQ8kf52K4
2. V´ıdeo 2: https://youtu.be/a7g7Z5dMdgQ
Pseudoc´odigo
1: for i = 1 hasta n-1 do
2: j = i;
3: while j > 0 and arreglo[j-1] > arreglo[j] do
4: intercambiar(arreglo[j], arreglo[j-1]);
5: j = j-1;
6: end while
7: end for
33 / 53
35. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
1. Ordene, ascendentemente y descendentemente,
usando inserci´on, el siguiente conjunto de n´umeros:
8, 3, 2, 9, 10, 7, 1, 4, 5. Indique las pasadas
realizadas.
2. Ordene, ascendentemente y descendentemente,
usando inserci´on, el siguiente conjunto de letras: J,
M, A, E, W, Q, P, R, M, B,X. Indique el n´umero de
pasadas realizadas.
3. Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
35 / 53
38. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja I
Comparaciones
Para ordenar un arreglo de n elementos, el n´umero
de comparaciones siempre es:
c(n) = (n −1)+(n −2)+· · ·+2+1 =
n × (n − 1)
2
c(n) no depende del orden de los t´erminos, sino del
n´umero de t´erminos:
O(c(n)) = n2
Por lo tanto la cota ajustada asint´otica del n´umero
de comparaciones pertenece al orden de n cuadrado.
38 / 53
40. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja III
El n´umero de intercambios i(n), que hay que
realizar depende del orden de los t´erminos y
podemos diferenciar el mejor y peor caso.
Definition (mejor caso)
Si el arreglo est´a previamente ordenado.
Definition (peor caso)
Si el arreglo est´a previamente ordenado en orden inverso.
Se puede determinar una cota ajustada asint´otica
del n´umero de intercambios, dado que ´este
depender´a del orden del vector en cuesti´on.
O(i(n)) =?
40 / 53
41. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: peor caso I
Si se pasa al algoritmo un arreglo ordenado en orden
inverso realizar´a un n´umero de comparaciones
c(n) =
n2
− n
2
y tendr´a que realizar un n´umero igual de intercambios
entre los t´erminos del arreglo, dado que en cada
comparaci´on los t´erminos estar´an desordenados, y se
realizar´a el intercambio.
i(n) =
n2
− n
2
Por lo tanto en el caso m´as desfavorable tanto el n´umero
de comparaciones como el de intercambios coinciden:
41 / 53
42. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: peor caso II
O(c(n)) = O(i(n)) = n2
El n´umero de comparaciones y de intercambios, en el
peor caso, pertenece al orden de n cuadrado.
42 / 53
43. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: mejor caso I
En el mejor caso el n´umero de comparaciones ser´a el
mismo que en cualquier otro caso:
Ω(c(n)) = n2
La cota inferior asint´otica del n´umero de comparaciones
pertenece al orden de n cuadrado, como en los dem´as
casos, pero en todas las comparaciones el orden es el
correcto y por tanto no se realiza ning´un intercambio:
i(n) = 0
Por lo tanto el coste de intercambios no depende de n, y
es constante:
Ω(i(n)) = 1
43 / 53
44. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: mejor caso II
A tener en cuenta
El ordenamiento de burbuja tiene una complejidad
Ω(n2
) igual que el algoritmo de selecci´on.
Cuando un arreglo ya est´a ordenado, a diferencia
del algoritmo de inserci´on, que pasar´a por el arreglo
una vez y encontrar´a que no hay necesidad de
intercambiar las posiciones de los elementos, el
ordenamiento de burbuja est´a forzado a pasar por
dichas comparaciones, esto hace que su complejidad
sea cuadr´atica, incluso en el mejor de los casos.
El ordenamiento de burbuja se cataloga como el
algoritmo m´as ineficiente que existe.
44 / 53
45. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on I
Comparaciones
Para ordenar un arreglo de n elementos, el n´umero
de comparaciones siempre es:
c(n) = (n −1)+(n −2)+· · ·+2+1 =
n × (n − 1)
2
c(n) no depende del orden de los t´erminos, sino del
n´umero de t´erminos.
O(c(n)) = n2
Por lo tanto la cota ajustada asint´otica del n´umero
de comparaciones pertenece al orden de n cuadrado.
45 / 53
46. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on II
Intercambios
El n´umero de intercambios i(n) tambi´en es fijo.
T´engase en cuenta que la instrucci´on de
intercambio siempre se ejecuta.
i(n) = n
Definition (mejor caso)
Si el arreglo est´a previamente ordenado.
Definition (peor caso)
Si el arreglo est´a previamente ordenado en orden inverso.
46 / 53
47. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on III
sea cual sea el arreglo, y el orden de sus elementos,
lo que implica en todos los casos un coste lineal:
O(i(n)) = n
la cota ajustada asint´otica del n´umero de
intercambios es lineal, del orden de n.
La f´ormula que representa el rendimiento del
algoritmo, viene dada por
c(n) =
n2
+ n
2
47 / 53
48. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on I
Eficiencia
Depende del n´umero de comparaciones y del n´umero de
copias que el algoritmo requiere.
Comparaciones
En la primera pasada, se compara un m´aximo de un
´ıtem. En la segunda pasada, se compara un m´aximo
de dos ´ıtems, y as´ı hasta un m´aximo de n − 1
comparaciones en la ´ultima pasada. Esto es
1 + 2 + 3 + . . . + (n − 1) =
n × (n − 1)
2
48 / 53
49. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on II
Sin embargo, ya que en cada pasada un promedio
de solamente la mitad del n´umero m´aximo de ´ıtems
son realmente comparados antes de que se
encuentre el punto de inserci´on, se puede dividir
este n´umero entre dos, lo que da
n × (n − 1)
4
N´umero de copias
49 / 53
50. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on III
El n´umero de copias es aproximadamente el mismo
que el n´umero de comparaciones. Sin embargo, una
copia no consume tanto tiempo como un
intercambio, as´ı que para datos aleatorios este
algoritmo corre dos veces m´as r´apido que el
algoritmo de burbuja y m´as r´apido que el algoritmo
de selecci´on.
En cualquier caso, el algoritmo de inserci´on corre en
O(n2
) en tiempo para datos aleatorios.
50 / 53
51. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on IV
Para datos que est´an ya ordenados o casi
ordenados, el algoritmo de inserci´on es mejor.
Cuando los datos est´an en orden, la condici´on en el
while nunca es verdadera, lo que ejecuta n-1 veces.
En este caso el algoritmo corre en O(n) en tiempo.
Si los datos est´an casi ordenados, el algoritmo corre
casi en O(n) en tiempo, lo que lo hace una manera
simple y eficiente para ordenar un archivo que est´a
s´olo un poco fuera de orden.
Sin embargo, para datos que est´an en orden inverso,
toda posible comparaci´on y desplazamiento se lleva
a cabo, as´ı que el algoritmo no corre m´as r´apido
que el algoritmo de burbuja.
51 / 53
52. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on V
Revise eso utilizando la opci´on reverse-sorted en el
applet InsertSort Workshop
(http://cs.brynmawr.edu/Courses/cs206/
spring2004/lafore.html).
52 / 53
53. B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Fuentes
Libros
• Lafore, R., 2003. Data structures & algorithms in
Java, 2nd ed. Sams, Indianapolis, USA. Cap´ıtulos 2
y 3. (Disponible en la biblioteca)
• Deitel, P.J., Deitel, H.M., 2012. Java: How to
Program, 9th ed. Prentice Hall, Upper Saddle River,
N.J. Cap´ıtulo 19. (Disponible en la biblioteca)
53 / 53