¿Qué libros de algoritmos y estructuras de datos tratan bien la recursividad?

Diferentes aproximaciones:

  • Estructura e interpretación de los programas de computadora (Abelson y Sussman): este es probablemente el enfoque más completo que he visto, desde una perspectiva de programación funcional. En particular, introduce suavemente el análisis de algoritmos recursivos en términos de complejidad de tiempo y espacio.
  • Algoritmos fundamentales ( The Art of Computer Programming, vol.1, Donald Knuth): una referencia esencial a algoritmos, análisis de algoritmos y estructuras de datos, incluido el recursivo.
  • Las técnicas de programación recursiva (William H. Burge) tienen capítulos detallados sobre la estructura del programa, las estructuras de datos, las rutinas y las secuencias, el análisis y la clasificación.
  • Thinking Recursively (Eric S. Roberts) cubre el tema de una manera más accesible que Knuth o Burge, abordando la resolución de problemas, permutaciones, clasificación y datos recursivos.

Recomendaría Programación en Haskell por Graham Hutton por tres razones:

  1. La recursión es el concepto central en la programación funcional, por lo que se ve obligado a pensar en términos de recursividad para resolver incluso los problemas más simples.
  2. Haskell es el lenguaje de programación funcional más elegante que existe.
  3. El libro de Hutton está muy bien escrito.

Entiendo que puede interesarle más las estructuras de datos y los algoritmos cuyas implementaciones involucran la recursividad, pero el libro anterior es la mejor manera que conozco para familiarizarme con la recursión de manera rápida y natural.

More Interesting

¿Cuál es el beneficio de estudiar lógica y teoría de conjuntos para matemática o informática?

¿Cuáles son los pasos que debo seguir para dominar las matemáticas? ¿Y cuál es la forma más rápida de alcanzar este objetivo?

¿Es la arquitectura de las computadoras de Von Neumann, se basó en su trabajo ... o fue alguien más?

¿Qué debo hacer después de completar mi B.Tech para ingresar a una carrera relacionada con las matemáticas?

¿Cuáles son los principios básicos en trigonemetría que debo saber?

Fallé miserablemente en mi programación práctica. También soy débil en matemáticas y pensamiento lógico. ¿Puedo alguna vez aprender programación?

Cómo mejorar las matemáticas básicas para programar

¿Por qué algunas funciones hash usan un número primo como base? ¿Cuál es el significado de usar un número primo? ¿Es para asignar unicidad y minimizar la colisión de valores hash?

¿Cuál es tu identidad favorita en combinatoria?

¿Es posible resolver el problema de Towers of Hanoi de forma iterativa? En caso afirmativo, ¿cómo?

Dado un conjunto de n rectángulos alineados en el eje en el plano, ¿qué tan grande es el subconjunto más grande de estos rectángulos que contienen un punto común en O (n ^ 3) y luego en el orden O (nlogn)?

¿Cuál es el problema del bandido multi-brazo? ¿Cuáles son algunas de sus implicaciones?

Me siento cómodo resolviendo problemas matemáticos. Sin embargo, cuando tengo que programar y derivar la respuesta para esos problemas, tengo dificultades para traducir mis pasos matemáticos en código. ¿Qué me recomiendan hacer para superar este problema?

¿Qué pasaría si se definiera la multiplicación para tener 0 como identidad en lugar de 1?

Cómo mejorar mi forma analítica de pensar para trabajar matemáticamente para la programación de computadoras