Hay varios de esos libros, pero recomiendo tener mucho cuidado con ellos.
Por ejemplo, el libro clásico de dos volúmenes de Sedgewick está disponible con códigos C, C ++ y Java (diferentes variantes). Los algoritmos están bien cubiertos, pero los estudiantes encuentran que los códigos C ++ son difíciles de leer, y los códigos parecen haber sido adaptados de C (los códigos C deberían estar bien).
El manual de diseño de algoritmos de Steven Skiena tiene códigos suficientes para explicar los algoritmos (y buenas explicaciones compactas), pero no explica bien las tecnologías de programación.
Si está interesado en C ++ en lugar de Java, mi recomendación sería
Estructuras de datos y análisis de algoritmos en C ++: Mark A. Weiss: 9780132847377: Amazon.com: Libros
Esta es la 4ta edición.
La tercera edición aún puede estar bien, pero no del mismo nivel.
No use ediciones anteriores, los códigos están tan desactualizados como los códigos de los libros de Sedgewick y Skiena.
- ¿Cómo se almacena una matriz bidimensional en la memoria?
- ¿Cuál es el programa C para encontrar la subsecuencia repetida más larga en un texto dado?
- Dados N cajas grandes y M cajas pequeñas de diferentes tamaños, ¿cómo elegir una caja grande óptima para empacar todas las cajas más pequeñas?
- ¿Qué técnicas se utilizan para calcular las probabilidades de caída de elementos en los juegos?
- ¿Cuál es el significado de 'orden de crecimiento' en el análisis de algoritmos y cómo podemos encontrar el orden de crecimiento de un algoritmo dado?