Descargo de responsabilidad : no he terminado de leer ni CLRS ni Sedgewick, lea esta respuesta a su discreción.
Recomendaría Algorithms By Robert Sedgewick.
Tiene los siguientes rasgos en comparación con CLRS desde mi punto de vista:
- ¿Qué libro (s) y otros recursos recomendaría para que un principiante entienda las estructuras de datos y los algoritmos en C ++?
- ¿Cuál es el error lógico en mi siguiente código para la multiplicación de karatsuba?
- Cómo hacer un software de árbol de decisiones más interactivo
- ¿Hay algún número cuyo producto y suma sea 121?
- ¿Cuáles son las diferencias entre un programa y un algoritmo?
- Pruebas matemáticas menos rigurosas;
- más ilustraciones;
- da implementaciones reales en Java;
- más explicaciones, ejemplos y ejercicios;
- El curso en línea de Sedgewick está disponible en Coursera
- …
No lo consideraría como “otra versión” de CLRS, simplemente porque los Algoritmos cubren solo una fracción del contenido cubierto por CLRS. Pero estos contenidos, posiblemente, son la base de los temas avanzados. La minuciosa elaboración de Sedgewick seguramente lo ayudará a comprender más claramente.
Como ejemplo en vivo, los Algoritmos presentan 2-3 árboles de largo antes de introducir el Árbol Negro Rojo, mientras que CLRS discute directamente los Árboles Negros Rojos después de BST (menciona el árbol 2-3 en la nota del capítulo). Es posible que aún no conozca esas estructuras, pero diría que encontré que la disposición en Algoritmos es más fácil de memorizar los diferentes casos de operaciones y, lo más importante, de comprender la razón por la que lo hacemos. También me ayudó a comprender mejor la razón por la cual CLRS elige categorizar diferentes casos de esa manera. Tengo sentimientos similares por algunos (no todos) otros temas.
Para concluir, creo que para empezar, los algoritmos serían una buena opción; pero para hacerlo bien, CLRS es necesario (puede no ser suficiente). Entonces, si tiene suficiente tiempo y energía, es posible que desee tratar de resolver los temas de uno de ellos primero y luego usar el otro como control de cordura.