Desafortunadamente, tengo que estar en desacuerdo con Michael en este caso.
El TAOCP de Donald Knuth es demasiado largo para aprender a diseñar algoritmos por primera vez. Un novato, no importa cuán diligente y brillante sea, es probable que pierda la paciencia y se rinda si quiere pasar por las 3168 páginas de los libros de Knuth de principio a fin. Incluso si el alumno en cuestión aún persiste en continuar el camino de TAOCP yendo por una muestra en lugar de intentar trabajar a través de los libros en un orden lineal, puede que no sea una forma obvia de hacerlo de manera equilibrada.
Por otro lado, la alternativa es mucho más fácil. Simplemente tome uno de los libros de texto modernos sobre algoritmos, aprenda los conceptos básicos y luego vaya a TAOCP si tiene curiosidad / necesita aprender algo con más detalle.
- Creamos un algoritmo de software único para medir / cuantificar las diferencias de las imágenes a escala nano-planetaria. ¿Cómo monetizamos esto?
- Cómo demostrar que el algoritmo de búsqueda uniforme de costos siempre genera una ruta óptima
- Cómo determinar si un algoritmo informático es complejo o no
- ¿Te gusta la categoría de algoritmos de 'programación dinámica'?
- ¿Quién sabe qué hay detrás de la API de Google Nearby Search? ¿Qué algoritmo usan? ¿Cómo encuentra Google una estación de servicio cercana?
En comparación, el libro que solía enseñarme algoritmos (antes de comenzar la escuela de posgrado) fue un hermoso libro de Dasgupta, Papadimitriou y Vaziriani, que con solo 318 páginas logra dar una introducción moderna y bastante completa a los algoritmos. El libro toca todos los temas principales del tema con un enfoque en los paradigmas comunes que subyacen a muchas técnicas algorítmicas diferentes. (Como beneficio adicional, el libro incluso logra exprimir algunos de los desarrollos más recientes, como la computación cuántica / algoritmos).
Otra opción muy popular es el libro de Kleinberg y Tardos (Algorithm Design: 9780321295354: Computer Science Books @ Amazon.com), que es un poco más largo pero aún bastante manejable. (Por cierto, todos los autores mencionados anteriormente, como E. Tardos, U. Vaziriani, C. Papadimitriou, son figuras destacadas en diseño de algoritmos y Ciencias de la Computación Teórica en general. (¡Este último es incluso un ganador del premio Knuth!) Para que pueda confíe en que los materiales provienen de las fuentes correctas aquí).
Creo que una vez que el lector haya adquirido una base básica en el tema a través de estos libros (o incluso a lo largo de la lectura de estos), puede volver a Knuth para ver algunas de las gemas escondidas allí, y también para obtener más experiencia en su área particular de interés. Pero como expliqué, para la primera introducción, otros libros podrían funcionar mejor.