Semana 1Demostrar y dividir
Demostrar un algoritmo
- TeoríaPresentación · Demostrar un algoritmo: invariantes e inducción · Matching estable: Gale-Shapley
- LabAsignar postulantes a carreras
Universidad Nacional de Ingeniería
Cómo diseñar un algoritmo para un problema nuevo, demostrar que es correcto y reconocer cuándo un problema es difícil. En C++.

Este curso continúa Estructuras de Datos y usa lo aprendido en Matemática Discreta. Antes del primer laboratorio, revisen la guía del entorno y su cuenta de GitHub. Para la primera sesión, lean el capítulo 1 de los apuntes.
Invariantes e inducción, recurrencias, divide y vencerás.
Semanas 1–3IIArgumentos de intercambio, Huffman, Dijkstra, árboles de expansión mínima y DFS.
Semanas 4–6IIISubproblemas sobre secuencias, intervalos y árboles, y caminos mínimos.
Semanas 7–10IVFlujo máximo, reducciones, NP-completitud y qué hacer con un problema difícil.
Semanas 11–16