Decrementa y vencerás II

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Decrementa y vencerás II"

Transcripción

1 Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 21 de febrero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

2 1 Decrementa y vencerás II Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

3 1 Decrementa y vencerás II Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

4 En esta versión de algoritmos decrementa y vencerás el tamaño de la instancia se reduce con el mismo factor (típicamente 2) Ejemplos: Búsqueda binaria Exponenciación por cuadrados Multiplicación por el método ruso Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

5 Búsqueda binaria Es un algoritmo muy eficiente para búsqueda en arreglos ordenados Funciona comparando el término buscado (llave) K con el elemento en la mitad del arreglo A[m]. Si son iguales, el algoritmo se detiene, sino, se repite la misma operación recursivamente con la primera mitad del arreglo si K < A[m], o con la segunda mitad del arreglo si K > A[m] Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

6 Búsqueda binaria Decrementa y vencerás II Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

7 Búsqueda binaria, Eficiencia temporal Peor caso Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

8 Búsqueda binaria, Eficiencia temporal Peor caso Arreglo no contiene la llave K. Operación básica: comparación entre K y A[m] (3 vías) C worst (n) = C worst ( n/2 ) + 1 para n > 1, C worst (1) = 1 Esta relación de recurrencia ya la habíamos resuelto antes C worst (n) = log 2 n + 1 = log 2 (n + 1) Θ(log n) Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

9 Búsqueda binaria, Eficiencia temporal Ejemplos: Para encontrar un elemento K en un arreglo ordenado de 1,000 elementos (o confirmar que no está) toma sólo log 2 ( ) = 10 comparaciones de 3 vías Para encontrar un elemento K en un arreglo ordenado de 1 000,000 elementos (o confirmar que no está) toma sólo log 2 ( ) = 20 comparaciones de 3 vías Es un algoritmo óptimo para búsqueda en arreglos ordenados El número de comparaciones en el caso promedio es sólo ligeramente más pequeño que en el peor caso: C avg(n) log 2 n Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

10 Multiplicación por el método ruso Sean n y m dos enteros positivos cuyo producto deseamos encontrar (n representa el tamaño de la instancia). Se hace una tabla con 2 columnas encabezadas por n y m 1 Dividir n entre 2, sucesivamente, ignorando el residuo, hasta llegar a la unidad. Escribir los resultados en la columna n. 2 Multiplicar m por 2 tantas veces como veces se ha dividido n entre 2. Escribir los resultados sucesivos en la columna m. 3 Sumar todos los números de la columna m que estén al lado de un número impar de la columna n. Éste es el resultado. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

11 Multiplicación por el método ruso Se multiplica El resultado se encuentra sumando todos los elementos de la columna m que tienen un valor impar en la columna n Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

12 Multiplicación por el método ruso Este método funciona porque la multiplicación es distributiva, i.e., a (b + c) = a b + a c, así que: = 65 ( ) = 65 ( ) = ( ) = 3250 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

13 Ejercicio 1 Decrementa y vencerás II 1 Suponga que se le presenta un arreglo con 42 fotografías de personas (ordenadas en 6 filas con 7 columnas) y se le solicita identificar una foto objetivo únicamente haciendo preguntas que pueden ser respondidas con sí y no. Además existe la restricción de hacer el menor número de preguntas posible. Diseñe el algoritmo más eficiente para este problema e indique el número más grande de preguntas que pueden requerirse. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

14 1 Decrementa y vencerás II Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

15 En los algoritmos de tipo decrementa y vencerás con decremento variable la reducción del tamaño de la instancia es diferente en cada una de las iteraciones. Ejemplos: Algoritmo de Euclides Algoritmo basado en partición para el problema de selección Búsqueda por interpolación Algunos algoritmos para búsqueda en árboles binarios Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

16 Algoritmo de Euclides El algoritmo de Euclides se basa en la aplicación iterativa de la siguiente ecuación: Ejemplo: gdc(m, n) = gdc(n, m m«od n) gdc(80, 44) = gdc(44, 36) = gdc(36, 12) = gdc(12, 0) = 12 Es posible probar que el tamaño del problema (medido con el valor de n) decrece al menos en la mitad después de dos iteraciones. Por lo tanto, T(n) O(log n) Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

17 Problema de selección Encontrar el k-ésimo elemento más pequeño en una lista de números. Puede realizarse tomando ventaja de la idea de hacer una partición de la lista en torno a un elemento pivote p. Existen dos técnicas algorítmicas para hacer esta partición: el algoritmo de Hoare y el algoritmo de particionamiento de Lomuto. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

18 Problema de selección, algoritmo de Lomuto Utiliza un subarreglo A[l... r] donde 0 l r n 1, con tres partes (posiblemente vacías): Un segmento con elementos conocidos < p Un segmento con elementos conocidos p Un segmento con elementos por comparar Iniciando en i = l + 1, el algoritmo recorre A[l... r] hacia la derecha manteniendo esta estructura hasta obtener una partición En cada iteración, compara el elemento A[i] en el segmento con elementos por comparar con p. Si A[i] p, se incrementa i. Si A[i] < p, se incrementa s, se intercambian A[i] y A[s] y se incrementa i Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

19 Problema de selección, algoritmo de Lomuto Cuando no hay elementos sin procesar, se intercambian el pivote p y A[s] Esto permite encontrar la partición buscada Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

20 Problema de selección, algoritmo de Lomuto Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

21 Problema de selección, algoritmo de Lomuto Cómo puede resolverse el problema de selección (encontrar el k-ésimo elemento más pequeño) aprovechando la partición de una lista? Asumamos que la lista es un arreglo (cero basado) y que s es el índice del pivote p después de aplicar el algoritmo de Lomuto para encontrar la partición. Si s = k 1, entonces el problema fue resuelto porque el pivote p es el k-ésimo elemento más pequeño Si s > k 1, el k-ésimo elemento más pequeño del arreglo puede encontrarse como el k-ésimo elemento más pequeño en la parte izquierda de la partición Si s < k 1, el k-ésimo elemento más pequeño del arreglo puede encontrarse como el (k s)-ésimo elemento más pequeño en la parte derecha de la partición Si no se resuelve el problema, este se reduce y puede resolverse usando el mismo enfoque de manera recursiva. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

22 Problema de selección, algoritmo quickselect Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

23 Algoritmo quickselect, complejidad Mejor caso Cuando al hacer la primera partición (usando n 1 comparaciones) se resuelve el problema C best (n) = n 1 Θ(n) Peor caso Cuando se producen particiones no balanceadas (una parte vacía y otra con n 1 elementos) en las n 1 iteraciones Caso promedio C worst (n) = (n 1) + (n 2) = n(n 1) 2 C avg (n) = C(n/2) + (n 1) Θ(n) Θ(n 2 ) Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de / 22

Decrementa y vencerás

Decrementa y vencerás Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 19 de febrero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás 19 de febrero de 2018 1 / 30 1 Decrementa y vencerás Tipos de algoritmos

Más detalles

Conceptos Fundamentales del Análisis de Algoritmos II

Conceptos Fundamentales del Análisis de Algoritmos II Conceptos Fundamentales del Análisis de Algoritmos II Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 17 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II

Más detalles

Eduardo Andrés Medina Ramírez Angel Robles Pérez MÉTODO DE ORDENAMIENTO QUICKSORT

Eduardo Andrés Medina Ramírez Angel Robles Pérez MÉTODO DE ORDENAMIENTO QUICKSORT Eduardo Andrés Medina Ramírez Angel Robles Pérez MÉTODO DE ORDENAMIENTO QUICKSORT QUÉ ES QUICKSORT? HISTORIA DEL MÉTODO QUICKSORT El método Quicksort fue ideado por el científico inglés Charles Anthony

Más detalles

Divide-y-vencerás, backtracking y programación dinámica

Divide-y-vencerás, backtracking y programación dinámica Divide-y-vencerás, backtracking y programación dinámica Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera Noviembre, 2012 Prof. Isabel

Más detalles

Introducción al Análisis y Diseño de Algoritmos

Introducción al Análisis y Diseño de Algoritmos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 10 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Introducción al ADA 10 de enero de 2018 1 / 22 1 Introducción al Análisis y Diseño de Algoritmos

Más detalles

Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera

Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera RECURSIÓN La recursión es una técnica fundamental en el diseño de algoritmos, que está basada en la solución de versiones más pequeñas del

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 08: Divide y vencerás (DyV) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Introducción Divide y vencerás Observaciones

Más detalles

Análisis matemático de algoritmos recursivos

Análisis matemático de algoritmos recursivos Análisis matemático de algoritmos recursivos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 24 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Análisis matemático de algoritmos 24 de enero de

Más detalles

ANÁLISIS Y DISEÑO DE ALGORITMOS

ANÁLISIS Y DISEÑO DE ALGORITMOS ANÁLISIS Y DISEÑO DE ALGORITMOS CURSO 2005/2006 BOLETÍN DE PROBLEMAS: DIVIDE Y VENCERÁS Ejercicio 1 Dado un vector ordenado y rotado k veces: diseñar un algoritmo O(log n) que encuentre el elemento mayor

Más detalles

Esquema de Dividir y Vencer

Esquema de Dividir y Vencer Esquema de Dividir y Vencer Amalia Duch Barcelona, marzo de 2006 Índice 1. Esquema general 1 2. Búsqueda binaria (binary search) 2 3. Ordenación por fusión (merge sort) 2 4. Ordenación rápida (quick sort)

Más detalles

Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos

Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar

Más detalles

Divide y vencerás. Dr. Eduardo A. RODRÍGUEZ TELLO. 7 de marzo de CINVESTAV-Tamaulipas

Divide y vencerás. Dr. Eduardo A. RODRÍGUEZ TELLO. 7 de marzo de CINVESTAV-Tamaulipas Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 7 de marzo de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Divide y vencerás 7 de marzo de 2018 1 / 50 1 Divide y vencerás Dr. Eduardo RODRÍGUEZ T. (CINVESTAV)

Más detalles

Ordenamiento (Sorting)

Ordenamiento (Sorting) Ordenamiento (Sorting) El problema del ordenamiento Ordenar: arreglo[α] arreglo[α], donde α es un tipo tal que está definida la relación < α Uno de los problemas más clásicos, útiles y estudiados de la

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 03: Análisis temporal M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Caso de entrada Ejemplo 1 (Búsqueda lineal) Operación

Más detalles

Conceptos Fundamentales del Análisis de Algoritmos

Conceptos Fundamentales del Análisis de Algoritmos Conceptos Fundamentales del Análisis de Algoritmos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 15 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis 15 de

Más detalles

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y

Más detalles

Análisis y Diseño de Algoritmos. Complejidad Computacional

Análisis y Diseño de Algoritmos. Complejidad Computacional Análisis y Diseño de Algoritmos Complejidad Computacional Multiplicación Método Tradicional Método Russé Método Particiones Complejidad Computacional Tan pronto como una máquina análitica exista, será

Más detalles

Cubiertas convexas II

Cubiertas convexas II Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 22 de enero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Cubiertas convexas II 22 de enero del 2013 1 / 41 1 Cubiertas convexas II Algoritmo QuickHull

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos

Más detalles

95.12 Algoritmos y Programación II Práctica 7: árboles

95.12 Algoritmos y Programación II Práctica 7: árboles Notas preliminares 95.12 Algoritmos y Programación II Práctica 7: árboles El objetivo de esta práctica es introducir distintas clases de estructuras de datos arbóreas y algoritmos para manipularlas. Los

Más detalles

Dividir-conquistar y podar-buscar

Dividir-conquistar y podar-buscar Técnicas de diseño de algoritmos Dividir-conquistar y podar-buscar Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL DC y PB p. 1 Diseño de algoritmos La meta: encontrar una manera eficiente

Más detalles

Técnicas de diseño de algoritmos Divide y Vencerás

Técnicas de diseño de algoritmos Divide y Vencerás Técnicas de diseño de algoritmos Divide y Vencerás Luis Javier Rodríguez Fuentes Amparo Varona Fernández Departamento de Electricidad y Electrónica Facultad de Ciencia y Tecnología, UPV/EHU [email protected]

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Complejidad. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Complejidad. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Complejidad Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et al,

Más detalles

Estructuras de Datos y Algoritmos. Curso 2009/2010. Tema 3: Divide y Vencerás

Estructuras de Datos y Algoritmos. Curso 2009/2010. Tema 3: Divide y Vencerás Estructuras de Datos y Algoritmos Facultad de Informática Universidad Politécnica de Valencia Curso 2009/2010 Tema 3: Divide y Vencerás FI UPV: Curso 2009/2010 TEMA 3. Divide y Vencerás Objetivos Estudio

Más detalles

Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas

Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,

Más detalles

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot Algoritmos de ordenación Análisis y Diseño de Algoritmos Algoritmos de ordenación Algoritmos básicos: Θ(n 2 ) Ordenación por inserción Ordenación por selección Ordenación por intercambio directo (burbuja)

Más detalles

Análisis y Diseño de Algoritmos

Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos Ordenamiento Heapsort y Quicksort DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Heaps Un Heap es una estructura de datos binaria Un arreglo que representa

Más detalles

Algoritmos de fuerza bruta

Algoritmos de fuerza bruta Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 29 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos de fuerza bruta 29 de enero de 2018 1 / 26 1 Algoritmos de fuerza bruta Introducción

Más detalles

Tema 2. Divide y vencerás.

Tema 2. Divide y vencerás. Programa de teoría Parte I. Estructuras de Datos. 1. Abstracciones especificaciones. 2. Conjuntos diccionarios. 3. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica. 1. Análisis

Más detalles

1. Algoritmo, programa y pseudocódigo. Introducción al estudio de algoritmos. Ejemplos

1. Algoritmo, programa y pseudocódigo. Introducción al estudio de algoritmos. Ejemplos Introducción al estudio de algoritmos 1. Algoritmo, programa y pseudocódigo 2. Eficiencia y el principio de invarianza 3. Operaciones elementales 4. Casos mejor, peor y medio 5. Notación asintótica 6.

Más detalles

Introducción al Análisis del Coste de Algoritmos

Introducción al Análisis del Coste de Algoritmos 1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir

Más detalles

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. 86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos

Más detalles

Tema 9. Recursividad

Tema 9. Recursividad Tema 9. Recursividad http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la información Universitat

Más detalles

PROGRAMACIÓN ESTRUCTURADA

PROGRAMACIÓN ESTRUCTURADA FACULTAD DE INGENIERÍA Universidad Nacional de Jujuy PROGRAMACIÓN ESTRUCTURADA Trabajo Práctico Nº 10 Tema: Arreglos. Actualización y Búsqueda Apellido y Nombre: Fecha: / / Conceptos Teóricos RESPONDA

Más detalles

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios 6.1.(Clase) Un programa que utiliza la técnica divide y vencerás, divide un problema de tamaño n en a subproblemas de tamaño n/b. El tiempo g(n) de la resolución directa (caso base) se considerará constante.

Más detalles

Análisis de Algoritmos

Análisis de Algoritmos Análisis de Algoritmos IIC1253 IIC1253 Análisis de Algoritmos 1 / 36 Complejidad de un algoritmo Un algoritmo A puede ser pensado como una función A : {0,1} {0,1} Qué tan general es esta representación?

Más detalles

Análisis y Diseño de Algoritmos

Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos Introducción: El Rol de los Algoritmos en Computación DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Temario 2 1. Introducción 2. Notación Asintótica 3. Recurrencias

Más detalles

Divide & Conquer. Herman Schinca. Clase de Junio de 2011

Divide & Conquer. Herman Schinca. Clase de Junio de 2011 Divide & Conquer Herman Schinca Clase 20 7 de Junio de 2011 Divide y vencerás Idea aplicable a muchas situaciones de la vida. Origen histórico atribuído a Julio César en relación a sus estrategias militares.

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad

Más detalles

Métodos de Ordenamiento. Unidad VI: Estructura de datos

Métodos de Ordenamiento. Unidad VI: Estructura de datos Métodos de Ordenamiento Unidad VI: Estructura de datos Concepto de ordenación La ordenación de los datos consiste en disponer o clasificar un conjunto de datos (o una estructura) en algún determinado orden

Más detalles

Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i)

Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i) Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (i) Eficiencia y notación asintótica. Introducción Para resolver un problema pueden existir varios algoritmos. Por tanto, es lógico

Más detalles

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria Estructura de datos y Algoritmos Tema III Clasificación en memoria secundaria 3.1. Clasificación externa basada en mezcla 3.1.1. Mezcla directa. 3.1.2. Mezcla natural. 3.1.3. Mezcla balanceada múltiple.

Más detalles

Estructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa

Estructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa Estructura de Datos Complejidad de Algoritmos Mauricio Solar Lorna Figueroa 2010 1 Algoritmo Definición: Un algoritmo es un conjunto finito de instrucciones que sirven para resolver un problema si fueron

Más detalles

Programa de teoría. Algoritmos y Estructuras de Datos II. 2. Divide y vencerás. 1. Análisis de algoritmos

Programa de teoría. Algoritmos y Estructuras de Datos II. 2. Divide y vencerás. 1. Análisis de algoritmos Programa de teoría Algoritmos y Estructuras de Datos II 1. Análisis de algoritmos 2. Divide y vencerás 3. Algoritmos voraces 4. Programación dinámica 5. Backtracking 6. Ramificación y poda A.E.D. II 1

Más detalles

ANÁLISIS Y DISEÑO DE ALGORITMOS. PRACTICAS

ANÁLISIS Y DISEÑO DE ALGORITMOS. PRACTICAS ANÁLISIS Y DISEÑO DE ALGORITMOS. PRACTICAS 2004-2005 PRACTICA 1: MEDICIÓN DEL TIEMPO. ALGORITMOS DE ORDENACIÓN Crear un conjunto de funciones que permitan la medición del tiempo de ejecución de los programas,

Más detalles

Multiplicación de matrices simétricas

Multiplicación de matrices simétricas Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =

Más detalles

Estratégias generales de análisis y diseño de algorítmos

Estratégias generales de análisis y diseño de algorítmos Estratégias generales de análisis y diseño de algorítmos comp-420 Ayudantes Hugo Eduardo Dueñas [email protected] (ordinaria) Alberto José Ramirez Valadez [email protected] (ordinaria) Mandar tareas (programas)

Más detalles

Sistema de Ecuaciones Lineales - Métodos Iterativos -

Sistema de Ecuaciones Lineales - Métodos Iterativos - Sistema de Ecuaciones Lineales - Métodos Iterativos - Contenido Métodos Iterativos Método de Jacobi Método de Gauss-Seidel Fórmulas Recursivas Métodos Iterativos Los métodos iterativos son aquellos que

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido no recursivos La notación de Landau O La notación O Principio

Más detalles

Recursividad Definición

Recursividad Definición Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como

Más detalles

Tema 3.2: Eficiencia de algoritmos recursivos. Diseño y Análisis de Algoritmos

Tema 3.2: Eficiencia de algoritmos recursivos. Diseño y Análisis de Algoritmos Diseño y Análisis de Algoritmos Contenidos Contenidos 1 Introducción 2 3 Método general para resolución de relaciones de recurrencia URJC DAA 2 / 37 Introducción Análisis de algoritmos recursivos La matemática

Más detalles

Técnicas para el Diseño de Algoritmos

Técnicas para el Diseño de Algoritmos Técnicas para el Diseño de Algoritmos Algoritmos Algoritmos voraces Divide y conquista Programación dinámica Backtracking Algoritmos Voraces Algoritmos Voraces Algoritmos que implementan una búsqueda miope

Más detalles

Algoritmos Secuenciales y Recursivos

Algoritmos Secuenciales y Recursivos Algoritmos Secuenciales y Recursivos M. Andrea Rodríguez-Tastets Ayudante: Erick Elejalde Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] I Semestre - 2014 1/45 Análisis secuencial

Más detalles

Capítulo I ELEMENTOS PREVIOS

Capítulo I ELEMENTOS PREVIOS Capítulo I ELEMENTOS PREVIOS Antes de iniciar lo referente a Criterios de Divisibilidad, recordaremos algunos conceptos y propiedades previas que nos permitirán comprender de mejor manera el contenido

Más detalles

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos y Estructuras de Datos III Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos golosos Backtracking (búsqueda con retroceso) Divide and conquer

Más detalles

Práctica 2 - Ejercicio 2.8

Práctica 2 - Ejercicio 2.8 Algoritmos y Estructura de Datos III Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 27 de Marzo de 2013 2.8 - Euclides 2.8. a. Escribir el algoritmo de Euclides para calcular el

Más detalles

Ordenamiento y Búsqueda

Ordenamiento y Búsqueda Ordenamiento y Búsqueda Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Intercambio directo 3 Inserción directa 4 Selección directa

Más detalles

Conceptos básicos de Geometría

Conceptos básicos de Geometría Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 15 de enero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) 15 de enero del 2013 1 / 25 1 Geometría Afín Geometría Euclidiana Áreas y ángulos Dr. Eduardo

Más detalles

Algoritmos de Ordenamiento

Algoritmos de Ordenamiento Algoritmos de Ordenamiento mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 12.04 Algoritmos de ordenamiento Entrada: secuencia de números. Salida: permutación

Más detalles

Análisis Amortizado. Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera

Análisis Amortizado. Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera Análisis Amortizado Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera 1 Análisis de algoritmos La eficiencia de un programa tiene dos

Más detalles

Algoritmos y Complejidad

Algoritmos y Complejidad Algoritmos y Complejidad Algoritmos dividir y conquistar Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Algoritmos dividir y conquistar

Más detalles

Intersección de segmentos de línea

Intersección de segmentos de línea Intersección de segmentos de línea Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 22 de febrero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Intersección de segmentos de línea 22 de febrero del 2013

Más detalles

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación: Versión Iterativa de recuperar en un ABB Ejercicios Tema 11 Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó Martínez [email protected] Estructuras de Datos y Algoritmos Escuela Técnica

Más detalles

sumando sumando sumando sumandos sumandos = 38.6 Cualquier número que se suma.

sumando sumando sumando sumandos sumandos = 38.6 Cualquier número que se suma. sumando sumando 33 + 4.7 + 0.9 = 38.6 sumandos sumando 33 + 4.7 + 0.9 = 38.6 sumandos Cualquier número que se suma. algoritmo Ejemplo de producto parcial algoritmo 555 x 7 35 Paso 1: Multiplicar las unidades

Más detalles

11-Ordenar Definiciones 11.2 Selección 11.3 Intercambio 11.4 Inserción 11.5 Shellsort 11.6 Quicksort 11.7 Mergesort.

11-Ordenar Definiciones 11.2 Selección 11.3 Intercambio 11.4 Inserción 11.5 Shellsort 11.6 Quicksort 11.7 Mergesort. 11-Ordenar 11.1 Definiciones 11.2 Selección 11.3 Intercambio 11.4 Inserción 11.5 Shellsort 11.6 Quicksort 11.7 Mergesort 11: Ordenar 2 Definiciones Se desea ordenar un set de estructuras, que contienen

Más detalles

Tema 3. Análisis de costes

Tema 3. Análisis de costes Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información

Más detalles

CONJUNTO DE LOS NÚMEROS NATURALES

CONJUNTO DE LOS NÚMEROS NATURALES República Bolivariana de Venezuela Ministerio de la Defensa Universidad Nacional Experimental de las Fuerzas Armadas Curso de Inducción Universitaria CIU Cátedra: Razonamiento Matemático CONJUNTO DE LOS

Más detalles

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

Métodos de ordenamiento:

Métodos de ordenamiento: Métodos de ordenamiento: 0) Intercambio: a) Idea: El algoritmo de intercambio aunque es el más sencillo de implementar es uno de los más ineficientes en rendimiento. Se basa en la idea de buscar cada vez

Más detalles

Algoritmos voraces (greedy)

Algoritmos voraces (greedy) Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 21 de marzo de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos voraces 21 de marzo de 2018 1 / 45 1 Algoritmos voraces (greedy) Aplicaciones de

Más detalles

Tema 10: Árbol binario de búsqueda

Tema 10: Árbol binario de búsqueda Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de

Más detalles

Tema 5. Matrices y Determinantes

Tema 5. Matrices y Determinantes Tema 5. Matrices y Determinantes 1. Definiciones 2. Operaciones Propiedades 3. Determinantes Orden 2 Orden 3: Regla de Sarrus Orden mayor de 3 Propiedades 4. Matriz inversa Ecuaciones matriciales 5. Rango

Más detalles

POTENCIACIÓN Y RADICACIÓN

POTENCIACIÓN Y RADICACIÓN Potenciación POTENCIACIÓN Y RADICACIÓN La potenciación o exponenciación es una multiplicación de varios factores iguales, al igual que la multiplicación es una suma de varios sumandos iguales. En la nomenclatura

Más detalles

Tema 5- Diseño Recursivo y Eficiente. Tema 5- Diseño Recursivo y. Descomposición recursiva ascendente de un vector. Etapas del diseño recursivo

Tema 5- Diseño Recursivo y Eficiente. Tema 5- Diseño Recursivo y. Descomposición recursiva ascendente de un vector. Etapas del diseño recursivo Tema 5- Diseño Recursivo y Eficiente Tema 5- Diseño Recursivo y Eficiente Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Introducción

Más detalles

MATRICES MULTIPLICACIÓN DE MATRICES

MATRICES MULTIPLICACIÓN DE MATRICES Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera MATRICES MULTIPLICACIÓN DE MATRICES Matrices Conceptos básicos Matriz: arreglo bidimensional A(MxN) Vector: arreglo unidimensional X(N) Matriz

Más detalles

ESCUELA PREPARATORIA OFICIAL NO.16 MATERÍA: PENSAMIENTO NUMÉRICO Y ALGEBRAICO I

ESCUELA PREPARATORIA OFICIAL NO.16 MATERÍA: PENSAMIENTO NUMÉRICO Y ALGEBRAICO I ARITMÉTICA 1. Números naturales 2. Divisibilidad 3. Números enteros 4. Números decimales 5. Fracciones y números racionales 6. Proporcionalidad 7. Sistema métrico decimal 8. Sistema sexagesimal 9. Números

Más detalles

Algoritmos y Estructuras de Datos

Algoritmos y Estructuras de Datos 1 / 36 Universidad Icesi Facultad de Ingeniería 2017-2 2 / 36 Agenda del día 1 3 / 36 Por qué usamos recurrencias en análisis de algoritmos? 3 / 36 Por qué usamos recurrencias en análisis de algoritmos?

Más detalles

Guía práctica de estudio 4 Algoritmos de búsqueda parte 1

Guía práctica de estudio 4 Algoritmos de búsqueda parte 1 Guía práctica de estudio 4 Algoritmos de búsqueda parte 1 Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía Práctica 4 Estructura de datos y Algoritmos II Algoritmos

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

Introducción y Comportamiento Asintótico

Introducción y Comportamiento Asintótico Introducción y Comportamiento Asintótico M. Andrea Rodríguez-Tastets Ayudante: Erick Elejalde Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] I Semestre - 2014 1/64 Problemas and

Más detalles

4 MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE ECUACIONES LINEALES

4 MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE ECUACIONES LINEALES 57 4 MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE ECUACIONES LINEALES En este capítulo se estudia el componente algorítmico y computacional de los métodos directos para resolver sistemas de ecuaciones lineales.

Más detalles