¿Qué es una recursión?
En informática, muchos problemas requieren una estrategia de divide y vencerás. La técnica de recursión utiliza esta estrategia. En su forma más simple, la recursividad es una función que divide un problema en problemas más pequeños hasta que se pueda determinar el producto final. La informática se fundó en una plataforma matemática y lógica. La recursión ha sido parte de este marco más amplio durante muchas décadas y hoy se puede encontrar en la mayoría de los lenguajes de programación de computadoras.
La programación dinámica es una implementación de recursión, que divide un problema en componentes. Este proceso permite la anidación de problemas dentro de problemas más grandes donde cada subproblema requiere el resultado del problema anterior. Este tipo de recursión funcional es típico en la manipulación de matrices.
Este estilo de programación es beneficioso porque simplifica un problema en componentes manejables. También tiene el beneficio del desarrollo de software modular. Este enfoque modular permite la creación de componentes reutilizables en una aplicación informática.
La recursión funciona bien cuando se crean características de seguridad dentro de las aplicaciones informáticas. Cada pantalla de una aplicación puede requerir reglas comerciales específicas que determinen si los campos deben ser visibles. En lugar de escribir un código de seguridad individual en cada pantalla, se puede crear una función recursiva para leer todas las pantallas antes de presentar los datos al usuario y aplicar las restricciones de visibilidad necesarias.
El diseño gráfico es otra área que se adapta bien a un problema recursivo. Imagine un programa que fue diseñado para crear un cuadrado dentro de un cuadrado. El cuadrado más pequeño tendría los mismos requisitos funcionales que el cuadrado más grande, siendo el único cambio las dimensiones de los dos cuadrados.
Un algoritmo de clasificación es un problema lógico en el que una lista de elementos debe clasificarse en un orden específico. Este tipo de resolución de problemas requiere la combinación constante de una lista en una nueva lista, hasta que la lista final se ordene como se desee. Un buen enfoque para resolver este problema es crear un ciclo recursivo que continúe barajando la lista hasta que se ordene en la lista final.
El poder de la automatización del software hace que el uso de la recursividad parezca trivial para la mayoría de los propietarios de sistemas. Por lo general, se espera que las funciones de seguridad y la clasificación de columnas requieran un simple clic de un mouse o el golpe de un teclado. Bajo las coberturas de esta simple acción se encuentra la complejidad y la elegancia de la recursividad en la práctica.