¿Cuál es el mejor libro para aprender algoritmos?

Los algoritmos son independientes del lenguaje y cualquier programador que valga la pena debería poder convertirlos al idioma de su elección. Desafortunadamente, me he encontrado con varios programadores que son REALMENTE buenos en lenguaje de programación, por ejemplo, Java, conoce pequeños detalles de la API y las complejidades del lenguaje, pero tiene muy poco conocimiento de los algoritmos. Pídales que corrijan los algoritmos de clasificación populares, por ejemplo, quicksort y se desmoronarán. Esperando que sepan sobre algoritmos más complejos, por ejemplo, algoritmos de cadena, gráfico, árbol o codicioso. Una vez, le pregunté a un candidato muy bueno que era bueno en Java, multiproceso, pero su estructura de datos y habilidad con el algoritmo era realmente pobre para su experiencia y calibre. Le pregunté, ¿por qué no pasó tiempo cepillando su algoritmo y su habilidad para resolver problemas antes de venir a la entrevista? Su excusa fue “esos algoritmos son solo para entrevistas y nunca se usaron realmente en la codificación práctica. Nunca los he usado en mis 6 años de carrera en el desarrollo de Java” . Tenía razón, pero no reconoció el algoritmo de mejora a más largo plazo y la estructura de datos para mejorar la habilidad de programación. Son una herramienta para desarrollar habilidades de resolución de programación y sentido de codificación, que se requiere para convertir un requisito del usuario en una línea de código también conocida como programa de computadora.

10 libros de algoritmos: lectura obligatoria para desarrolladores

Otro consejo de oro para aquellos que piensan que los algoritmos son estructuras de datos son para aquellos que quieren trabajar en Amazon, Google, Facebook, Intel o Microsoft, recuerden que es la única habilidad que es menos tiempo, por supuesto, aparte de UNIX y C. El lenguaje va y viene, pero el núcleo de la programación, que es el algoritmo y la estructura de datos, permanece igual. Si sabe cómo funciona la tabla hash, puede usar su implementación en cualquier lenguaje de programación, por ejemplo, HashMap de JDK o HashMap de la biblioteca de impulso de C ++. Entonces, si te tomas en serio la programación y te das cuenta de que los algoritmos y la estructura de datos no son opcionales, estos son algunos de los mejores libros para aprender algoritmos. Algunos de ustedes podrían haberlos leído antes, pero vale la pena leerlos nuevamente.

Introducción a los algoritmos por Thomas H. Corman
Este es uno de los libros de algoritmos más populares, pero tenga en cuenta que contiene una gran dosis de teoría. La edición actual de estos libros es la 3ra Edición y sugiero encarecidamente que cada programador tenga esto en su estantería, pero solo para lecturas cortas y referencias. No es posible terminar este libro de una sola vez. Otra razón por la que recomiendo este libro como uno de los primeros en algoritmo porque es independiente del lenguaje y está acompañado de conferencias aquí.

Algoritmos de Robert Sedgewick y Kevin Wayne
Este fue mi recurso preferido en algoritmos desde hace mucho tiempo, pero todavía lo veo con menos frecuencia que antes. Aprenderá muchos antecedentes sobre algoritmos y hoy en día hay disponibles versiones específicas de este libro para diferentes lenguajes de programación, por ejemplo, Java y C ++. También hay una clase de Coursera para este libro, Algorithms Part 1 y Algorithms Part 2. Es excelente. También es mi principal recomendación para los programadores de Java para el aprendizaje de algoritmos. Lo creas o no, pero si ya conoces un lenguaje de programación, ver ejemplos de algoritmos en ese lenguaje de programación que otros reduce la curva de aprendizaje. También puede leer la cuarta edición de este libro en línea de forma gratuita aquí

El manual de diseño de algoritmos de Steve S. Skiena
Este es otro excelente libro sobre algoritmos informáticos que abarca una tonelada de algoritmos con mucho código también. Lo que más me gusta del libro es donde realmente da ejemplos de dónde usó los algoritmos (o variaciones de los mismos) en la práctica; realmente le ayuda a ver la (s) clase (s) de problemas para los que se puede usar un algoritmo particular (o familia de algoritmos).
El código está en C, pero no es muy esotérico y es fácil de seguir.
También había estado fuera de la escuela por un tiempo y esto me ayudó a ponerme al día con bastante rapidez en varios algoritmos gráficos. He tenido esto durante casi 10 años y todavía lo veo de vez en cuando

Algoritmo para entrevistas
Algoritmo para la entrevista de Adnan Aziz es un libro de lectura sobre algoritmos, escrito en términos de tener en mente la entrevista de programación. La portada en sí muestra lo interesante que puede ser el libro, si miras de cerca, la imagen en la portada está dibujada con miniaturas de personajes famosos, y el libro explica cómo puedes desarrollar tales algoritmos. Me gusta este libro debido a su enfoque y objetivo, algunas veces aprender lo mismo con un objeto diferente ayuda a entenderlo mejor.

Algoritmo en cáscara de nuez
Algorithms in a Nutshell de O’Reilly es un libro muy bueno para aprender algoritmos de programación, especialmente para programadores de Java. Describe los algoritmos con enfoque en implementarlos y sin grandes matemáticas utilizadas en libros clásicos sobre algoritmos. Todos los algoritmos se presentan en forma de patrón, con una motivación para usarlos, imágenes y pseudocódigo que brindan una descripción general de alto nivel y un código de trabajo (en C, C ++, Java y Ruby). También tienen puntos de referencia para proporcionar pruebas del rendimiento teórico de los algoritmos. En resumen, uno de los mejores libros para aprender algoritmos para programadores.

Diseño de algoritmo por Kleinberg y Tardos
Este es en realidad el segundo mejor libro en Algoritmos después de Introducción a Algoritmos de Thomas Cormon. No es realmente una introducción a algoritmos y es más adecuado para programadores experimentados. Se trata más del diseño de algoritmos para desarrolladores familiarizados con los algoritmos básicos. Debe comenzar con Introducción de algoritmos o algoritmos de Robert Sedgewick y luego continuar con este libro.

Introducción a los algoritmos: un enfoque creativo
Introducción a los algoritmos: un enfoque creativo Por Udi Manber es un gran libro para el autoaprendizaje, ya que está lleno de cientos de problemas y ejemplos. Está diseñado para mejorar las habilidades de resolución de problemas del lector y la comprensión de los principios detrás del diseño de algoritmos, que lo ayudarán a desarrollar sus habilidades de resolución y codificación de programas.

El diseño y análisis de algoritmos
Este es otro gran cocinero en algoritmos informáticos y merece un lugar en el estante del programador. Una vez que haya completado la clase de algoritmos de Coursera y uno de los libros de introducción, puede leer este libro para estudiar temas avanzados en algoritmos.

Estructuras de datos y algoritmos. Aho, Ullman y Hopcroft
Otro buen libro de introducción sobre algoritmos y estructuras de datos. Un libro encantador y claro, y muchos programadores a quienes no les gusta el uso intensivo de las matemáticas en algoritmos apreciarán este libro.

Algoritmos de Python: Dominar Algoritmos Básicos en el Lenguaje Python
Este libro está diseñado para programadores de Python. Magnus Lie Hetland también es autor de uno de los populares libros introductorios de Python, Beginning Python. Este libro se centra mucho en los algoritmos gráficos. Como he dicho que los algoritmos son independientes del lenguaje, el aprendizaje del algoritmo de Python no significa que no pueda implementarlos en Java o C ++, pero si ya conoce Python, este es el gran libro para aprender algoritmos informáticos.

Eso es todo sobre 10 libros de algoritmos que todo programador debería leer . Estoy de acuerdo en que los algoritmos son un tema complejo y no es fácil entenderlos en una sola lectura, en ese caso sugiero leer el mismo libro dos veces. Además, solo leer no es suficiente, intenta implementarlos en un lenguaje de programación que te encante. No está de más escribir su propia ArrayList, HashMap o una implementación de Map basada en árbol. El efecto del algoritmo de aprendizaje no es visible de inmediato, pero notará una mejora sutil en su pensamiento, construcción de soluciones y calidad de código con el tiempo. Por último, hay dos tipos de programadores, uno que entiende el algoritmo y otro que no.

Si le gusta esta lista de libros, también disfrutaría de mi colección de 10 libros que todos los programadores deberían leer, que es una lista de libros sobre programación, codificación, técnicas de desarrollo de software y mejores prácticas, computadoras, programación como profesión y experiencia de algunos de los Grandes programadores / codificadores / desarrolladores de los últimos 50 años.

Por cierto, si está interesado en un curso en línea sobre algoritmos, le sugiero que consulte Algoritmos y estructuras de datos – Parte 1 y 2 en Pluralsight. Es un curso gratuito pero necesita registrarse en Pluralsight. También ofrece una prueba gratuita de 10 días, que es suficiente para tomar este y otros cursos de algoritmos y estructura de datos.

Introducción a los algoritmos por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: este libro de texto aclamado internacionalmente ofrece una introducción integral al estudio moderno de algoritmos informáticos. Cubre una amplia gama de algoritmos en profundidad, pero hace que su diseño y análisis sean accesibles para todos los niveles de lectores. Cada capítulo es relativamente autónomo y presenta un algoritmo, una técnica de diseño, un área de aplicación o un tema relacionado. Los algoritmos se describen y diseñan de manera que puedan ser leídos por cualquiera que haya realizado una pequeña programación. Las explicaciones se han mantenido elementales sin sacrificar la profundidad de la cobertura o el rigor matemático. La tercera edición ha sido revisada y actualizada en todo momento. Incluye dos capítulos completamente nuevos, sobre árboles de Van Emde Boas y algoritmos multiproceso, y adiciones sustanciales al capítulo sobre recurrencias (ahora llamado Divide-and-Conquer). Presenta un tratamiento mejorado de la programación dinámica y algoritmos codiciosos y una nueva noción de flujo basado en bordes en el material en redes de flujo. Se han agregado muchos ejercicios y problemas nuevos en esta edición. El texto está destinado principalmente a estudiantes que estudian algoritmos o estructuras de datos. Como discute los problemas de ingeniería en el diseño de algoritmos, así como los aspectos matemáticos, es igualmente adecuado para el autoaprendizaje por parte de profesionales técnicos.

Supongo que conoce bien las estructuras de datos. Entonces, aquí tienes!

  • Introducción a los algoritmos 3rd Edition – CLRS (Biblia de algoritmos :))
  • Paquete de algoritmos en Java, tercera edición, partes 1-5: Fundamentos, estructuras de datos, clasificación, búsqueda y algoritmos de gráficos (3ra edición) – Robert Sedgewick: tiene una buena explicación sobre algoritmos de gráficos. Las cosas están bien explicadas tanto desde la perspectiva conceptual como desde la perspectiva del diseño. También tiene una implementación ordenada

Creo que depende de su conocimiento existente de algoritmos.

Si ya tiene experiencia en algoritmos, pero todavía no se siente cómodo con ningún lenguaje de programación, entonces creo que debería elegir ‘Introducción a los algoritmos (CLRS)’, ya que cubre la mayoría de los temas en detalle, lo cual debería ser capaz de digerir dado que ya tiene algunos conocimientos sobre algoritmos y también el código de implementación en este libro usa Pseudocódigo en lugar de un lenguaje de programación real, por lo que debería ser más fácil de leer y entender, si no se siente cómodo con cualquier lenguaje de programación todavía.

Si no tiene experiencia en algoritmos, pero conoce bastante bien el lenguaje de programación C, entonces puede elegir el ‘Manual de diseño de algoritmos’. Es realmente agradable, conciso y fácil introducción a los algoritmos junto con el código de implementación en C. También tiene una gran cantidad de aplicaciones de ejemplo para cada uno de los algoritmos / estructuras de datos que deberían ayudarlo a comprender en qué escenarios, qué estructura de datos / algoritmo debe utilizar.

Recomendaría “El manual de diseño del algoritmo” como texto principal. Le ayuda a comprender los conceptos fundamentales en algoritmos y estructuras de datos con una explicación simple, sin poner mucho énfasis en las propiedades matemáticas de estos conceptos. Se esfuerza por hacerle entender el “panorama general” mostrándole usos prácticos de estos conceptos. Como un ávido usuario de este texto, este aspecto ayudó a solidificar el conocimiento adquirido ya en el texto. También encontrará interesantes sus conjuntos de problemas porque son desafiantes. También recomendaría que use CLRS como texto de referencia. Si desea una explicación más detallada y orientada matemáticamente de estos conceptos, CLRS es su respuesta.

Introducción a los algoritmos de Thomas H. Cormen es el mejor libro para algoritmos. Proporciona una descripción detallada de todos y cada uno de los algoritmos y problemas relacionados con eso para ponerlo en práctica.

Gracias por A2A Pramod Jalindra

  1. Algoritmo Por: Robert Sedgewick y Kevin Wayne
  2. Estructura de datos y algoritmo simplificados: estructura de datos y acertijos algorítmicos Por: Narasimha Karumanchi
  3. Estructura de datos y algoritmos en Java Por: Robert Lafore
  4. Introducción a los algoritmos Por: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
  5. El manual de diseño de algoritmos Por: Steven S Skiena

Este es mi libro favorito para algoritmos y constructores de datos. Resolución de problemas con algoritmos y estructuras de datos. Por Brad Miller y David Ranum, Luther College. y nunca probé ningún otro libro para leer algoritmos después de leer esto, pero son algoritmos y DS implementados con el lenguaje de programación Python.

El libro Introducción a los algoritmos también es mejor, pero aquí solo conocerá pseudocódigo tienes que implementar por tu idioma favorito.

todo lo mejor.

Para comenzar, debe consultar el CLRS, y si es realmente aventurero, lea El arte de la programación de computadoras por Donald Knuth.

¿Aprendiendo qué algoritmos? A que nivel ¿Te refieres a un libro introductorio? Creo que mi área ha sido cubierta es la investigación numérica. Si te refieres a algoritmos numéricos como análisis numérico, álgebra lineal numérica, entonces tengo algunos libros aquí. [1]

Notas al pie

[1] Recursos matemáticos

Introducción a los algoritmos

Pero, le sugiero que lea en línea (blogs de códigos, algoritmos de topcoder, etc.) o mire algunos videos en YouTube (videos de Tushar Roy).

En primer lugar, los algoritmos no dependen del PL. Si tienes una receta de cocina, puedes cocinar en tu casa o en el dormitorio, ¿verdad? La receta no cambia así como los algoritmos.

Consulte también este libro: Algorithms, 4th Edition

También hay un curso en línea de los autores de este libro. Están enseñando algoritmos utilizando Java. Y tienen su propia biblioteca para el curso.

Para el curso en línea, consulte coursera.org

Buena suerte

Romper la entrevista de codificación de Gayle Laakmann McDowell. Libro bastante sólido, ¡todavía me ayuda hasta el día de hoy!

Introducción a los algoritmos por Charles E. Leiserson, Clifford Stein, Ronald Rivest y Thomas H. Cormen

Puede obtenerlo en cualquier lugar en línea.

También está disponible la versión PDF del