Flujo de control
Flujo de control = la manera en el cual procede la ejecución de un programa entre sus componentes
Mucho de eso se basa en el uso de una pila (inglés: stack) de procesos
Subrutina
fragmento de código que realizan su tarea particular independientemente a base de parámetros que reciben
puede producir valores de salida
Recursión
A un mecanismo que llama a si mismo se dice recursivo
Funciones matemáticas
Subrutinas en programas
Es muy poderosa en términos de eficiencia
… y muy ineficiente cuando se aplica mal
lo nuestro
Cuando NO aplicar
Ejemplos de algoritmos donde no sirve la recursión
Números Fibonacci
Los mismos subproblemas se repiten
Distancia de edición
Más eficiente con programación dinámica
Cuando se puede con o sin
Detección de palíndromos
Cómputo del factorial
El mayor divisor común (gcd)
Búsqueda en profundidad (DFS)
Casos clásicos de éxito
Manipulación de árboles binarios
Búsqueda binaria
Ordenamiento rápido & por mezcla
Torres de Hanoi
Trabajo en grupo
Vamos a trabajar en pseudocódigo con por lo menos un ejemplo del uso de la recursión donde es útil o hasta indispensable su uso
Dos computadoras por grupo (2-4 personas)
TemasPalíndromos
Factorial
gcd
DFS
Árboles binarios
Búsqueda binaria
Ordenamiento rápido
Ordenamiento por mezcla
Torres de Hanoi
Producto de la sesión
Un pseudocódigo recursivo para el problema del grupo
Una instancia del problema por cada participante del grupo
Una distinta a cada persona
La semana que viene cada uno presenta con un diagrama de flujo la ejecución del pseudocódigo con su propia instancia
Nuevamente máx. 5 min y 5 diapositivas
Subir al blog de antemano
Puntos por interacción como antes
Evaluación como la vez pasada