TEMA 1: DIVIDE Y VENCERÁS
|
|
- Gregorio Quiroga Camacho
- hace 5 años
- Vistas:
Transcripción
1 TEMA 1: DIVIDE Y VENCERÁS l OBJETIVOS: n Estudio de la estrategia de diseño de algoritmos (recursivos) Divide y Vencerás n Estudio de los algoritmos de Ordenación Rápida: MergeSort y QuickSort n Estudio de otros algoritmos clásicos. 1
2 ÍNDICE l ÍNDICE: n La aproximación Divide y Vencerás. n Análisis de la corrección y la eficiencia de los algoritmos DyV n Problemas: Ordenación Rápida, Selección, Multiplicación de Matrices, otros. 2
3 BIBLIOGRAFÍA l G. Brassard, P. Bratley. Fundamentos de Algoritmia. Prentice Hall, Capítulo 4. l T.H. Cormen, C.E. Leiserson, R.L. Rivest Introduction to Algorithms. MIT Press, Capítulos 1, 8 y 10. l M.A. Weiss Estructuras de datos y Algoritmos. Addison-Wesley, Capítulo 10. 3
4 1. LA APROXIMACIÓN DyV l DIVIDIR el problema original en varios subproblemas que se dividen la talla de forma equilibrada. l VENCER (resolver) los subproblemas de forma recursiva. Si éstos son de un tamaño suficientemente pequeño, resolverlos de forma directa. l COMBINAR las soluciones para obtener la solución del problema original. 4
5 ALGORITMO DE ORDENACIÓN POR FUSIÓN (MergeSort) n DIVIDE la secuencia de n elementos a ordenar en DOS subsecuencias de n/2 elementos cada una. n ORDENA las dos subsecuencias por fusión. Si la secuencia tiene un sólo elemento no hace nada. n MEZCLA las dos subsecuencias YA ordenadas para producir la secuencia completa también ordenada. 5
6 Ejemplo: Mergesort Acción MergeSort (A,p,r) Si p<r entonces q:=[(p+r)/2]; MergeSort(A,p,q); MergeSort(A,q+1,r); Merge(A,p,q,r); Fsi Facción DIVIDE VENCE COMBINA 6
7 Ejemplo: MergeSort l La acción de combinar Merge: {p<=r Ordenada(A,p,q) Ordenada(A,q+1,r)} Merge(A,p,q,r); {Ordenada(A,p,r)} 7
8 Ejemplo: MergeSort l La acción de combinar Merge: {p<=r Ordenada(A,p,q) Ordenada(A,q+1,r)} Merge(var A:secuencia;p,q,r:nat); var B: secuencia; i,j,k:nat; i:=p; j:=q+1; k:=p; mientras (i<=q) and (j<=r) hacer si A[i]<A[j] entonces k:=k+1; fmientras; sino B[k]:=A[i]; i:=i+1; B[k]:=A[j]; j:=j+1; fsi; mientras (i<=q) hacer B[k]:=A[i]; i:=i+1; k:=k+1; fmientras; mientras (j<=r) hacer B[k]:=A[j]; j:=j+1; k:=k+1; fmientras; para i:=p hasta r hacer A[i]:=B[i] fpara fmerge; {Ordenada(A,p,r)} 8
9 2. CORRECCIÓN Y EFICIENCIA DE LOS DyV l La corrección se realiza por inducción sobre el tamaño del problema. l Consiste en demostrar que la operación combinar es correcta si las soluciones de las que parte también lo son. 9
10 La eficiencia. Teoremas l Teorema 1: La solución de la ecuación T(n)=aT(n/b)+O(n k ), con a>=1 y b>1 es O(n log ba ) si a>b k O(n k logn) si a=b k O(n k ) Dem. [Weiss,pp.383] si a<b k 10
11 La eficiencia. Teoremas l Teorema 2: La solución de la ecuación T(n)=aT(n/b)+O(n k log p n), con a>=1, b>1 y p>=0 es O(n log ba ) O(n k log p+1 n) O(n k log p n)si a<b k si a>b k si a=b k 11
12 Ordenación Rápida: QuickSort l DIVIDE: En A[p..r] se establece una Partición en dos subv. no vacíos A[p..q] y A[q+1..r] tal que cada elemento del 1º es menor o igual que cada uno de los del 2º (q se calcula en partición). l VENCER: ordenar los dos subvectores llamando a QuickSort. l COMBINAR: no hay que hacer nada. 12
13 Algoritmo QuickSort Acción QuickSort (A,p,r) si p<r entonces q:=partición(a,p,r); QuickSort(A,p,q); QuickSort(A,q+1,r); fsi facción 13
14 La elección del pivote l Elegir el primer elemento? l Elegirlo al azar? l Tomar la mediana de tres? n La mediana entre el 1º el último y el central. Ej: 8,1,4,9,6,3,5,2,7,0 (piv=6) l Otras. 14
15 El algoritmo Partición {p<=r} Función Partición (A,p,r) devuelve q /* x es el pivote */ p <=x >=x r q 15
16
17 Algoritmo PARTICION (var v:vector; ini,fin:entero; var pos:entero); var var izq,der,pos: entero; p:tipobase; p:=v[ini]; izq:=ini; der:=fin; repetir repetir izq:=izq+1 hasta v[izq]>=p repetir der:=der-1 hasta v[der]<=p Intercambiar (v[izq],v[der]); hasta der<izq; Intercambiar (v[izq],v[der]); /* deshace el último cambio */ Intercambiar (v[ini],v[der]); pos:=der; fparticion 17
18 Análisis de QS l Caso Peor: Partición desequilibrada T(n)=T(1)+T(n-1)+k n n>1 T(n)=k n=1 T(n) Θ(n 2 ) l Caso Mejor: Partición equilibrada T(n)=2T(n/2)+k n n>1 T(n) Θ(nlogn) 18
19 Análisis de QS (cont.) l Coste promedio: asumimos que todas las instancias son equiprobables n 1 1 T(n) = ( k' n + T(i) + T(n i)) = n i= 1 n 1 2 = T(i) + kn Θ( n log n) n i= 1 19
20 El problema de la Selección l Encontrar el i-ésimo elemento mayor (o menor) en una lista de n números n Caso particular: Encontrar la mediana [i=n/2] 20
21 Método para Selección l Se efectúa Partición sobre A[p..r] l Si i<= V1 el i-ésimo elemento menor estará en V1 l Si i= V1 +1 el i-ésimo elemento menor es el pivote l Si i> V1 el i-ésimo elemento menor estará en V2, y será el (i- V1-1)-ésimo menor de V2 21
22 El algoritmo Selección Función Selección (A,p,r,i) dev TipoBase var k:entero; si p<r entonces q:=partición(a,p,r); k:=q-p+1; /*Nº elementos de 1ª parte*/ si i<=k entonces dev Selección(A,p,q,i); sino dev Selección(A,q+1,r,i-k); sino dev A[p] 22
23 Análisis de la CT de Selección (n=r-p+1) l Caso Peor: Partición desequilibrada T(n)=T(n-1)+k n n>1 T(n) Θ(n 2 ) l Caso Mejor: Partición equilibrada T(n)=T(n/2)+k n n>1 T(n) Θ(n) l Caso Medio: T(n) Θ(n). Ejercicio. 23
24 MULTIPLICACIÓN DE MATRICES l Por simplicidad, consideraremos matrices cuadradas: C=A x B l Algoritmo directo: para i:=1 hasta n hacer para j:=1 hasta n hacer C[i,j]:=0; para k:=1 hasta n hacer C[i,j]:=A[i,k]*B[k,j]+C[i,j] 24
25 El algoritmo de Strassen l Dividir el problema de mult. matrices nxn en términos de la multiplicación de matrices n/2xn/2 C C = A A C C B B = A A A 12 B A B A A A A X B B B B A A B B B B = l Mejora el coste de la solución directa? 25
26 El alg. de Strassen (cont.) l Reducir el nº de subproblemas, aunque se incremente el nº de operaciones en cada llamada (Efecto de la cte oculta) M 1 =(A 12 -A 22 )x(b 21 +B 22 ) M 2 =(A 11 +A 12 )x(b 11 +B 22 ) M 3 =(A 11 -A 21 )x(b 11 +B 12 ) M 4 =(A 11 +A 12 )xb 22 M 5 =A 11 x(b 12 -B 22 ) M 6 =A 22 x(a 21 -B 11 ) M 7 =(A 21 +A 22 )xb 11 26
27 El algoritmo de Strassen (cont.) Se pueden multiplicar dos matrices nxn haciendo 7 multiplic. de matrices n/2xn/2, pero más sumas y restas, es más eficiente?... C C C C = M1 + M2 M6 + M4 M7 + M6 M2 M4 M3 + + M5 M5 M7 Complejidad temporal: T(n)=7T(n/2)+k n 2 n>1 T(n)=k n=1 T(n) Θ (n 2.81 ) 27
28 Algoritmo max-min (i,j:entero; var max,min:entero); /* a[1..n] es una variable global */ si (i=j) entonces max:=a[i]; min:=a[j]; /*pequeño*/ sino si i=j-1 entonces /* pequeño */ si a[i]<a[j] entonces max:=a[j]; min:=a[i] sino max:=a[i]; min:=a[j]; fsi; sino /*el problema no es pequeño, se divide */ med:=(i+j)/2; max-min(i,med,max,min); max-min(med+1,j,max1,min1); si max<max1 entonces max:=max1; fsi; sin min>min1 entonces min:=min1; fsi; fsi; fmax-min;
29 MergeSort con listas de punteros a[1..n] vector de enteros link[0..n] vector de enteros. Se interpretan como punteros a a. Una lista es una secuencia de punteros terminda en un 0. Ejemplo: link: [1] [2] [3] [4] [5] [6] [7] [8] Dos listas Q=(2,4,1,6) R=(5,3,7,8)
30 Algoritmo Mergesort1(izq,der,umbral:entero); devuelve entero; si (der-izq)<umbral entonces entonces devuelve OrdeInser(a,link,izq,der); fmergesort1; sino med:=(der.izq)/2; fsi; q:=mergesort1(izq,med); r:=mergesort1(med+1,der); devuelve Merge1(q,r);
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 detallesAnálisis de algoritmos
Tema 08: Divide y vencerás (DyV) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción Divide y vencerás Observaciones
Más detalles1. Planteamiento general
Algoritmos de tipo Divide y Vencerás 1. Planteamiento general 2. Determinación del caso base 3.1. Búsqueda binaria 3.3. Problema de la selección 3.4. Multiplicación de matrices de Strassen 1. Planteamiento
Más detallesAná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 detallesDivide-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 detallesPrograma 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 detallesTema 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 detallesProgramación II. Mario Aldea Rivas Programación II 13/04/11 1. Mario Aldea Rivas Programación II 13/04/11 2
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 4. Introducción a los Algoritmos Tema 5. Algoritmos
Más detallesEsquema 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 detallesAlgoritmos y Complejidad
Algoritmos y Complejidad Curso 2017 Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2017 Resumen Objetivos Cronograma Cursado Recursos
Más detallesTema 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, sanchiz@icc.uji.es Estructuras de datos y de la información Universitat
Más detallesDividir-conquistar y podar-buscar
Técnicas de diseño de algoritmos Dividir-conquistar y podar-buscar Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL DC y PB p. 1 Diseño de algoritmos La meta: encontrar una manera eficiente
Más detallesAlgoritmos 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 detallesEjemplo: 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 detallesTé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 luisjavier.rodriguez@ehu.es
Más detallesCI2612: Algoritmos y Estructuras de Datos II. Recurrencias y el principio de dividir y conquistar. Recurrencias. Objetivos.
CI2612: Algoritmos y Estructuras de Datos II Blai Bonet Universidad Simón Boĺıvar, Caracas, Venezuela Recurrencias y el principio de dividir y conquistar Objetivos Recurrencias Repasar los conceptos de
Más detallesAná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 detallesTé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 detallesTEMA 1 La eficiencia de los algoritmos
DLSI (Univ. Alicante) Tema 1. La eficiencia de los algoritmos TEMA 1 La eficiencia de los algoritmos PROGRAMACIÓN Y ESTRUCTURAS DE DATOS La eficiencia de los algoritmos 1. Noción de complejidad Complejidad
Más detallesESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN SYLLABUS DEL CURSO Análisis de Algoritmos
1. CÓDIGO Y NÚMERO DE CRÉDITOS ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN SYLLABUS DEL CURSO Análisis de Algoritmos CÓDIGO FIEC04366 NÚMERO DE CRÉDITOS:
Más detallesOrdenamiento (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 detallesTema 5- Diseño Recursivo y. Objetivos Principales. Bibliografía Básica
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 detallesResolviendo Recurrencias
Resolviendo Recurrencias Mauro Jaskelioff 16/03/2015 Análisis de Algoritmos Queremos poder evaluar la performance de algoritmos. Para esto utilizamos Notación Asintótica Modelo de Costo basado en Lenguaje
Más detallesAnálisis de Algoritmos Primer Problemario Prof. Miguel A. Pizaña 22 de Mayo de 2007
Análisis de Algoritmos Primer Problemario Prof. Miguel A. Pizaña 22 de Mayo de 2007 I Tareas 1. Dudar de todo, al menos una vez en la vida. 2. Que dice la paradoja de Zenón de Elea? Qué significa paradoja?
Más detallesProgramación Análisis de Algoritmos: Tiempo de Ejecución (Introducción)
Programación 2 5 - Análisis de Algoritmos: Tiempo de Ejecución (Introducción) 1 Análisis de Algoritmos: Introducción Qué algoritmos elegir para resolver un problema? Que sean fáciles de entender, codificar
Más detallesTaller de Programación Dinámica
Taller de Programación Dinámica Pablo Haramburu - Cristian Martinez Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 14 de abril de 2014 Pablo Haramburu
Más detallesMateria requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. Introducción al Análisis de Algoritmos.
UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: Clave: FACULTAD DE INGENIERÍA ANÁLISIS DE ALGORITMOS PROPÓSITO DEL CURSO DES: Ingeniería Programa(s) Educativo(s): Ingeniería en Ciencias de la Computación Tipo
Más detallesTeoría de Algoritmos 2 o curso de Ingeniería Informática
Teoría de Algoritmos 2 o curso de Ingeniería Informática José Luis Verdegay Departamento de Ciencias de la Computación e Inteligencia Artificial http://decsai.ugr.es/ verdegay Horarios y duración de la
Más detallesDecrementa y vencerás II
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 2018 1 / 22 1 Decrementa y vencerás II Dr. Eduardo
Más detallesTema 4y 5. Algoritmos voraces. Algoritmos sobre grafos
Tema 4y 5. Algoritmos voraces. Algoritmos sobre grafos Objetivos: Estudio de la técnica de diseño de algoritmos voraces Estudio de algunos problemas clásicos: Indice: Mochila con fraccionamiento Algoritmos
Más detallesIntroducció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 detallesTema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3
Tema 2: Grafos y Árboles Algoritmos y Estructuras de Datos 3 1 ÍNDICE 2.1 Definiciones básicas: grafos y árboles 2.2 Representaciones de árboles y grafos 2.3 Algoritmos de recorrido de árboles binarios
Más detallesEsquemas algorítmicos: Introducción
Algoritmia Algoritmia = = tratamiento sistemático de técnicas fundamentales para el diseño y análisis de algoritmos eficientes J. Campos - C.P.S. Esquemas algorítmicos - Pág. 1 Computadores cada vez más
Más detallesEstructura de Datos Árboles Árboles 2-3
Estructura de Datos Árboles 1-2-3 Árboles 2-3 Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 Arboles 1-2-3 Árbol n-ario ordenado de orden 3 Cada nodo tiene 1 ó 2 elementos 75 Nodo
Más detallesDivide y vencerás. Diseño y Análisis de Algoritmos
Diseño y Análisis de Algoritmos Contenidos Contenidos 1 Introducción 2 Transforma y vencerás 3 Decrementa y vencerás 4 URJC DAA 2 / 54 Introducción Introducción URJC DAA 3 / 54 Introducción Uno de los
Más detallesPlanificaciones Teoría de Algoritmos I. Docente responsable: BARRIOS FEDERICO LUIS. 1 de 5
Planificaciones 7529 - Teoría de Algoritmos I Docente responsable: BARRIOS FEDERICO LUIS 1 de 5 OBJETIVOS Que el alumno - adquiera las herramientas teóricas y prácticas para la evaluación del costo temporal
Más detallesEstructura 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 detallesRecurrencias y cómo resolverlas
Recurrencias y cómo resolverlas Algoritmos y Estructuras de Datos II Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 8 de septiembre de 2017 Algo2 (DC-FCEyN-UBA)
Más detallesProgramación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 5. Algoritmos voraces, heurísticos y aproximados
Más detallesPlanificaciones Teoría de Algoritmos I. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5
Planificaciones 7529 - Teoría de Algoritmos I Docente responsable: WACHENCHAUZER ROSA GRACIELA 1 de 5 OBJETIVOS Que el alumno - adquiera las herramientas teóricas y prácticas para la evaluación del costo
Más detallesParte de Algoritmos de la asignatura de Programación Master de Bioinformática. Divide y vencerás
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Divide y vencerás Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Recurrencias DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción 2 Cuando un algoritmo se llama a sí mismo Su tiempo de ejecución se puede describir
Más detallesAlgoritmos: Algoritmos sobre secuencias y conjuntos de datos
Algoritmos: Algoritmos sobre secuencias y conjuntos de datos Alberto Valderruten LFCIA - Departamento de Computación Facultad de Informática Universidad de A Coruña, España www.lfcia.org/alg www.fi.udc.es
Más detallesProgramación Dinámica 1
Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir
Más detallesAlgoritmos: Análisis de algoritmos
Algoritmos: Análisis de algoritmos Alberto Valderruten LFCIA - Departamento de Computación Facultad de Informática Universidad de A Coruña, España www.lfcia.org/alg www.fi.udc.es Contenido Análisis de
Más detallesANÁ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 detallesGUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA
1. DESCRIPCIÓN DE LA ASIGNATURA Grado: Ingeniería Informática en Sistemas de Información Doble Grado: Asignatura: Algorítmica 1 Módulo: M2: Programación de Computadores Departamento: Deporte e Informática
Más detallesAlgorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación:
Algorítmica y Lenguajes de Programación Ordenación (ii) Ordenación. Introducción En la lección anterior se vieron dos métodos de ordenación: Método de la burbuja. Método de la burbuja con señal. El primero
Más detallesDOCTORADO EN INGENIERÍA DEL LENGUAJE Y DEL CONOCIMIENTO. Área: Ingeniería del Lenguaje y del Conocimiento
DOCTORADO EN INGENIERÍA DEL LENGUAJE Y DEL CONOCIMIENTO Área: Ingeniería del Lenguaje y del Conocimiento Programa de Asignatura: Introducción al Diseño de Algoritmos y sus Aplicaciones Código: DILC10200
Más detallesAlgoritmos 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 detallesPrograma de la asignatura Curso: 2006 / 2007 ALGORITMIA (4456)
Programa de la asignatura Curso: 2006 / 2007 ALGORITMIA (4456) PROFESORADO Profesor/es: ANTONIO EDUARDO RENEDO MENA - correo-e: arenedo@ubu.es FICHA TÉCNICA Titulación: INGENIERÍA EN INFORMÁTICA Centro:
Más detallesTema 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 detallesEDA - Estructuras de Datos y Algoritmos
Unidad responsable: Unidad que imparte: Curso: Titulación: Créditos ECTS: 2017 270 - FIB - Facultad de Informática de Barcelona 723 - CS - Departamento de Ciencias de la Computación GRADO EN INGENIERÍA
Más detallesAnálisis matemático de algoritmos no recursivos
no recursivos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 22 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Análisis matemático de algoritmos 22 de enero de 2018 1 / 16 1 Análisis matemático
Más detallesAlgoritmos. el algoritmo de ordenación. de ordenación (II) a 18 anales. En la primera parte de este. Introducción
Algoritmos de ordenación (II) Todos sabemos que los ordenadores, entre otras cosas, sirven para ordenar. Pero Cómo lo hacen? Existen distintos modos de hacerlo? Depende de lo que tengamos que ordenar?
Más detallesAná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 detallesTema 5- Diseño Recursivo y. Ordenación Vectorial: Inserción Directa (II) Ordenación Vectorial: Inserción Directa. Tema 5- Diseño Recursivo y Eficiente
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 1. Introducción a la
Más detallesIN34A - Optimización
IN34A - Optimización Complejidad Leonardo López H. lelopez@ing.uchile.cl Primavera 2008 1 / 33 Contenidos Problemas y Procedimientos de solución Problemas de optimización v/s problemas de decisión Métodos,
Más detallesELEMENTOS DE ALGEBRA LINEAL
ELEMENTOS DE ALGEBRA LINEAL Matriz Una matriz de orden o dimensión n x p es una ordenación rectangular de elementos dispuestos en n filas y p columnas de la siguiente forma: a11 a1 a1p a1 a a p A an1 an
Más detallesAlgoritmos 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 andrea@udec.cl I Semestre - 2014 1/45 Análisis secuencial
Más detallesMATRICES 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 detallesAlgoritmos 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 detallesAlgoritmia para problemas difíciles
Algoritmia para problemas difíciles Elvira Mayordomo Universidad de Zaragoza 16 de septiembre de 2013 Elvira Mayordomo (Universidad de Zaragoza) Algoritmia para problemas difíciles 16 de septiembre de
Más detallesCOMPUTABILIDAD Y COMPLEJIDAD
COMPUTABILIDAD Y COMPLEJIDAD Año 2017 Carrera: Licenciatura en Informática Plan 2007-2012-2015 Año: 3 Duración: Semestral Profesor: Fernando G. Tinetti FUNDAMENTACION: Se presentan las ideas básicas de
Más detallesAnálisis de Algoritmos
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Análisis de Algoritmos Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias
Más detallesMultiplicación de enteros Algoritmo clásico 1234*5678 = 1234* (5*1000 + 6*100+7*10+8) = 1234*5*1000 + 1234*6*100 + 1234*7*10 + 1234*8 Operaciones bási
Algoritmos Divide y Vencerás Análisis y Diseño de Algoritmos Algoritmos Divide y Vencerás Ejemplo: Multiplicación de enteros grandes La técnica divide y vencerás Características Método general divide y
Más detallesDivide 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 detallesAlgoritmos de Ordenación
Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Algoritmos comunes - Ordenación Ordenación o clasificación es
Más detallesCOMPUTABILIDAD Y COMPLEJIDAD
COMPUTABILIDAD Y COMPLEJIDAD Año 2015 Carrera: Licenciatura en Informática Plan 2003/07-2012-2015 Año: 3 Duración: Semestral Profesor: Fernando G. Tinetti FUNDAMENTACION: Se presentan las ideas básicas
Más detallesEduardo 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 detallesGuía docente de la asignatura
Guía docente de la asignatura Asignatura Materia Módulo Titulación ANÁLISIS Y DISEÑO DE ALGORITMOS INGENIERÍA DE SOFTWARE TECNOLOGÍAS ESPECÍFICAS GRADO EN INGENIERÍA INFORMÁTICA Plan 545 46920 Periodo
Más detallesEstructuras de Datos. Andrea Rueda. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas
Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Fundamentos de complejidad Es eficiente un algoritmo? Análisis de los recursos que el algoritmo
Más detallesTema 2 Fundamentos de Complejidad Algorítmica
Tema 2 Fundamentos de Complejidad Algorítmica Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Santander (Cantabria, España) p.sanchez@unican.es Pablo Sánchez (MATESCO)
Más detallesAlgoritmos y Estructuras de Datos III Primer cuatrimestre 2013
Algoritmos y Estructuras de Datos III Primer cuatrimestre 2013 Algoritmos y Estructuras de Datos III Primer cuatrimestre 2013 (bienvenidos!) Programa 1. Algoritmos: Definición de algoritmo. Máquina RAM.
Más detallesPROGRAMA DE ASIGNATURA
PROGRAMA DE ASIGNATURA ASIGNATURA: Algoritmos y Estructuras de Datos II AÑO: 2012 CARÁCTER: Obligatoria CARRERA: Licenciatura en Ciencias de la Computación RÉGIMEN: cuatrimestral CARGA HORARIA: 120 hs.
Más detallesUNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIAS
Asignatura Código Estructura de Datos IS34 Créditos 4 Intensidad semanal Requisitos 6 Horas IS284 Justificación Objetivo general Objetivos Específicos El propósito es la continuación del estudio de los
Más detallesUniversidad 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 detallesACTIVIDAD CURRICULAR DE FORMACIÓN
ACTIVIDAD CURRICULAR DE FORMACIÓN Facultad o Instituto : Ciencias de la Ingeniería Carrera : Ingeniería Civil Informática I. IDENTIFICACIÓN DE LA ACTIVIDAD CURRICULAR Nombre : Diseño y Análisis de Algoritmos
Más detallesANÁ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 detalles1. Introducción al análisis de algoritmos
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Brassard y Bratley, 97; capítulos
Más detallesExamen de Estructuras de Datos y Algoritmos. (Modelo 2)
Examen de Estructuras de Datos y Algoritmos (Modelo 2) 17 de junio de 2009 1. Se dispone de una tabla hash de tamaño 12 con direccionamiento abierto y sondeo cuadrático. Utilizando como función hash la
Más detallesExamen de Estructuras de Datos y Algoritmos. (Modelo 1)
Examen de Estructuras de Datos y Algoritmos (Modelo 1) 17 de junio de 2009 1. Qué rotación se necesita para transformar el árbol de la figura en un árbol AVL? a) Rotación simple izquierda-izquierda b)
Más detalles1. 1. Introducción al concepto de algoritmia
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Básica: Aho, Hopcroft y Ullman,
Más detalles1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.
Análisis de Algoritmos Ingeniería Informática, EPS-UAM Información general Organización del curso: 13-15 (mínimo-máximo) semanas docentes: 30-33 clases teóricas. 9-12 clases de problemas 26-30 clases prácticas
Más detallesSorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Más detallesLenguajes III Análisis y Diseño de Algoritmos
Lenguajes III Análisis y Diseño de Algoritmos Andrés Becerra Sandoval Código: CC060 Créditos: 3 Prerequisitos: Desarrollo Formal de programas Naturaleza del Curso El curso argumenta la necesidad de considerar
Más detallesTema 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 detallesSolución - práctico 10
Solución - práctico 10 Complejidad Ejercicio 1 a) Una implementación del algoritmo es la siguiente: /* Procedimiento que se encarga de realizar la unión de los dos conjuntos * ordenados der1 e izq1 son
Más detalles6 Introducción al Análisis de Algoritmos
Quick_Sort(A,izq,k-1); Quick_Sort(A,k+1,der); fin_si En este caso, el algoritmo depende de la elección del pivote. Es recomendable determinar el pivote aleatoriamente para minimizar la probabilidad de
Más detallesSistema de ecuaciones algebraicas. Eliminación de Gauss.
Sistema de ecuaciones algebraicas. Eliminación de Gauss. Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Correo: j.a.otero@itesm.mx web: http://metodosnumericoscem.weebly.com
Más detallesANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Algoritmica y complejidad. CURSO ACADÉMICO - SEMESTRE Primer semestre
ANX-PR/CL/001-01 GUÍA DE APRENDIZAJE ASIGNATURA Algoritmica y complejidad CURSO ACADÉMICO - SEMESTRE 2016-17 - Primer semestre GA_61CI_615000308_1S_2016-17 Datos Descriptivos Nombre de la Asignatura Titulación
Más detallesProgramación II. Mario Aldea Rivas Programación II 05/05/11 1
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 4. Introducción a los Algoritmos Tema 5. Algoritmos
Más detallesAlgorítmica y Complejidad. Tema 5 Divide y Vencerás.
Algorítmica y Complejidad Tema Divide y Vencerás. . Método.. Un ejemplo sencillo.. Complejidad del método.. Ejemplo: El máximo subarray.. Ejemplo: Multiplicación de enteros. . Método.. Un ejemplo sencillo..
Más detallesPlanificaciones Algoritmos y Programación II. Docente responsable: JUAREZ ANDRES ALBERTO. 1 de 9
Planificaciones 7541 - Algoritmos y Programación II Docente responsable: JUAREZ ANDRES ALBERTO 1 9 OBJETIVOS Introducir los conceptos POO, diseño algoritmos y estructuras datos, utilizando nociones eficiencia
Más detallesALGORITMOS PROBABILISTAS NUMÉRICOS SHERWOOD LAS VEGAS MONTE CARLO
ALGORITMOS PROBABILISTAS NUMÉRICOS SHERWOOD LAS VEGAS MONTE CARLO INTRODUCCIÓN Algoritmo probabilista: Deja al azar la toma de algunas decisiones. Cuando la decisión óptima llevaría mucho tiempo. Problemas
Más detallesAlgoritmos y Estructuras de Datos III Segundo cuatrimestre 2011
Algoritmos y Estructuras de Datos III Segundo cuatrimestre 2011 Programa 1. Algoritmos: Definición de algoritmo. Máquina RAM. Complejidad. Algoritmos de tiempo polinomial y no polinomial. Límite inferior.
Más detallesEstructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
Más detallesGuía docente de la asignatura
Guía docente de la asignatura Asignatura Materia Módulo Titulación ALGORITMOS Y COMPUTACIÓN COMPUTACIÓN TECNOLOGÍAS ESPECÍFICAS GRADO EN INGENIERÍA INFORMÁTICA Plan 545 Código 46944 Periodo de impartición
Más detalles