Está en la página 1de 6

Algoritmos

y Estructuras de Datos 3 – Periodo II 2019


(Actualizado 23/07/10)

Instructor: Marcos Villagra
Auxiliar de cátedra: Julio Mello, Fabricio Mendoza

Referencias
[1] Algorithms. Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani.
[2] Introduction to Algorithms, 3rd Edition. Thomas H. Cormen, Charles E.
Leisserson, Ronald L. Rivest, Clifford Stein.
[3] Competitive Programming, 3rd Edition. Halim & Halim.



Clase Contenido
#1
Martes Introducción y repaso de teoría de grafos.
23/07
− Instrucciones del curso
− Repaso de teoría de grafos.
o Conectividad y componentes conectados.
o Subgrafos. Caminos, circuitos y ciclos.
o Árboles.
o Caracterización del número de vértices y aristas.
o Altura de árboles
− Induccción

Referencia:
− Apéndice B de [2].
− Notas de curso.

#2
Viernes Introducción a Java.
26/07
Referencia:
− Notas de curso

#3
Martes Notación asintótica
30/07 − Definición de Big-Oh, Big-Theta y Big-Omega.
− Ejemplo con Bubblesort

Referencia:
− Capítulo 0 de [1].
− Capítulo 3 de [2].


#4
Viernes Divide y conquistarás
02/08 − Búsqueda binaria
− Teorema maestro.
− Recurrencias
o Inducción
o Conteo

Publicación de TP1

Referencias:
− Sección 2.2 de [1].
− Secciones 4.3, 4.4 de [2].

#5
Martes Divide y conquistarás
06/08 − Mergesort
− Multiplicación de enteros (Algoritmo de Karatsuba)
− Multiplicación de matrices (Algoritmo de Strassen)
− Subarreglo máximo.

Referencia:
− Secciones 2.1, 2.3, 2.5 de [1].
− Secciones 4.1, 4.2 de [2].

#6
Viernes DFS
09/08 − Representación de grafos.
o Matriz de adyacencia.
o Lista de adyacencia.
o Operaciones básicas.
− Algoritmo DFS.
− Pre-orden y post-orden.
− Conectividad en tiempo lineal.

Referencias:
− Secciones 3.1, 3.2 de [1].
− Secciones 22.1, 22.3 de [2].


#7
Martes DFS
13/08 − Grafos dirigidos.
− Grafos dirigidos acíclicos (dag).
− Ordenamiento topológico.
− Componentes fuertemente conectados en tiempo lineal
o Identificación de fuentes y sumideros.
o Reverso de un grafo.

Referencias:
− Secciones 3.3, 3.4 de [1].
− Secciones 22.4, 22.5 de [2].

#8
Viernes Revisión de TP1
16/08
#9
Martes BFS
20/08 − Algoritmo BFS.
− Colas de prioridad simple.
− Algoritmo de Dijkstra.

Referencias:
− Secciones 4.1, 4.2, 4.3, 4.4 de [1].
− Secciones 22.2, 24.2, 24.3 de [2].

#10
Viernes Heap
23/08 − Definición de Heap. Operaciones básicas y complejidad.
− Algoritmo de Dijkstra basado en heaps.
− Caminos cortos en dags
− Ciclos negativos y algoritmo de Bellman-Ford.

Referencias:
− Secciones 4.5, 4.6, 4.7 de [1].
− Secciones 24.1, 24.2 de [2].
− Capítulo 6 de [2].



#11
Martes Árboles de expansión mínimos (MST)
27/08 − Algoritmo de Kruskal.
− Algoritmo de Prim.
− Estructura Union-Find

Referencias:
− Sección 5.1 de [1].
− Capítulo 23 de [2].

#12
Viernes Algoritmos Codiciosos o Voraces (greedy)
30/08 − Horn-SAT.
− Covertura de intervalos.
− Balanceo de carga.

Referencia
− Sección 5.3 de [1].
− Sección 3.4 de [3].


Lunes EXAMENES PARCIALES
02/09
al
Sábado
14/09

#13
Martes Programación dinámica (DP)
17/09 − Longest increasing subsequence.
− Edit distance.

Referencias:
− Secciones 6.1, 6.2, 6.3 de [1].

#14
Viernes Revisión de parciales.
20/09

24/09 ETYC
al
26/09



#15
Martes Programación dinámica
01/10 − Knapsack
− Multiplicación de matrices.
− Conjuntos independientes en árboles.
− Subset sum.

Referencias:
− Secciones 6.4, 6.5, 6.7 de [1].
− Secciones 15.2, 15.3 de [2].
− Notas de curso


#16
Viernes Programación dinámica
04/10 − Maximum subarray (Algoritmo de Kadane)
− Maximum submatrix.
− Cambio de monedas.
− Problema del cajero viajante
− Algoritmo de Floyd-Warshall

Publicación de TP3

Referencias:
− Notas de curso.
− Sección 25.2 de [2].

#17
Martes Revisión de TP2
08/10

#18
Viernes Árboles de búsqueda binarios (BST)
11/10 − Definición.
− Búsqueda.
− Operaciones

Árboles AVL
− Altura.
− Operaciones y balanceo.

Referencias:
− Capítulo 12 de [2].
− Notas de curso.

#19
Martes Redes de Flujos
15/10 − Definición de flujo.
− Capacidad y conservación del flujo.
− Modelamiento de problemas.
− Redes con múltiples fuentes y sumideros.

Referencias:
− Sección 26.1 de [2].


#20
Viernes Redes de Flujos
18/10 − Redes residuales.
− Caminos aumentados.
− Cortes
− Teorema del corte-mínimo y flujo-máximo.
− Método de Ford-Fulkerson.

Referencias:
− Sección 26.2 de [2].


#21
Martes Redes de Flujos
22/10 − Algoritmo de Edmonds-Karp.
− Maximum Bipartite Matching.

Referencias:
− Secciones 26.2, 26.3 de [2].

#22
Viernes Revisión de TP3.
25/10

28/10 Exámenes Parciales
al
09/11

También podría gustarte