Lo que me ayudó, personalmente, a comprender la recursión fue el concepto de búsqueda de profundidad primero (DFS).
Tuve problemas para aprender la recursividad, hasta el punto en que pensé que nunca podría realmente “entenderla” y escribir algoritmos que la usaran efectivamente. Eso fue porque pensamos en ello con ejemplos como la Torre de Hanoi y el rompecabezas de las Ocho reinas. Esos ejemplos fueron, para mí, un poco demasiado complejos para entender el concepto básico, y rápidamente me confundiría y, frustrado, me rendiría.
DFS es, en mi opinión, la madre del algoritmo recursivo. Casi todas las recursiones que escribí (por ahora bastantes) comenzaron como una o podrían reformularse como una sin mucha molestia. La gran ventaja de DFS es que es muy fácil dibujar en una hoja de papel: no perderá la noción. Cada llamada recursiva es solo otro nodo, y si llega a una hoja, retrocede y busca el próximo hijo posible que aún no generó.
- ¿Hay alguna razón para no usar el generador de números aleatorios estándar de C ++?
- ¿Cuál es el mejor método para aprender efectivamente ciencia de datos / aprendizaje automático desde cero para un estudiante promedio de Ingeniería (idiomas, algoritmos, tutoriales, etc.)?
- ¿Qué institutos mejor C o estructuras de datos o facultad en Hyderabad?
- ¿Cuál es el problema matemático más difícil que existe?
- ¿Cuál es la forma más rápida de invertir una cadena con más de 10000 caracteres?