¿Cuáles son los mejores libros sobre algoritmos y estructuras de datos?

Dependerá del nivel de educación que tenga actualmente y de cuán exhaustivo quiera ser. Cuando comencé con esto, tenía poca comprensión matemática, por lo que la mayoría de los libros me eran imposibles de penetrar. Siendo 100% autodidacta, y ahora enseño estructuras de datos y algoritmos a personas sin experiencia y muchos reciben ofertas de las principales empresas de tecnología. Desde ese ángulo, hay un cierto subconjunto que debes conocer en la práctica frente a la increíble profundidad que se enseña en la mayoría de los libros y las escuelas.

Si no tienes una sólida formación matemática, te recomendaría estos libros. Estos fueron los que me enseñaron lo que necesito saber (y tengo alrededor de 50 libros de algoritmos en mi estante de los que era difícil aprender, mucho más avanzados que donde estaba, incluso para un primer libro en el tema). Si lo hiciera hoy, iría en orden numérico (1 – 5 a continuación):

  1. Invitación a la informática 5ta – más barata que la 6ta
  2. Descubriendo la informática: una introducción a la informática / programación pero IMO, establece un contexto adecuado sobre por qué hacemos informática en lugar de simplemente aprender a codificar o sobre algoritmos
  3. Estructuras de datos con C (Thareja): es increíblemente talentoso para hacer que las cosas sean fáciles de aprender
  4. Algoritmos 4º – Muy práctico

Entonces:

  1. El manual de diseño de algoritmos

Las siguientes son alternativas o suplementos realmente buenos (a los que me refiero con bastante frecuencia) (no en ningún orden en particular)

  1. Estructuras de datos usando C (Tenenbaum): más antiguo pero increíblemente perspicaz
  2. Estructuras de datos fáciles: un buen libro, muy visual, no me importa la respuesta inmediatamente después del enfoque de la pregunta, pero es un buen libro práctico destinado a la preparación de entrevistas para aquellos que no tienen experiencia con algoritmos
  3. Estructuras de datos y ALGORITMOS en C ++ 4th
  4. Desafíos de programación
  5. Pensar recursivamente en Java: un libro centrado exclusivamente en la recursividad

Para estructuras de datos más avanzadas o especializadas, me gustan los siguientes libros:

  1. Algoritmos y estructuras de datos: la caja de herramientas básica. En realidad, acabo de comprar este libro la semana pasada, pero soy adicto.
  2. Estructuras de datos avanzadas: no es un buen primer, segundo o tercer libro, pero es un buen libro una vez que esté listo para leerlo. Lo uso para fortalecer mi práctica con gráficos
  3. Fundamentos de Algoritmos 5to
  4. Algoritmos: los revisores de Amazon se quejaron de este libro, pero lo encontré esclarecedor y útil incluso antes de entender lo que es un buen libro de algoritmos. Lo compré para la sección de algoritmos en cadenas
  5. Manual de estructuras y aplicaciones de datos: lo compré solo para el capítulo sobre Análisis Amortizado, que encuentro 100 veces más esclarecedor que el triste capítulo sobre el libro CLRS (que todo el mundo parece copiar si lo mencionan) y CLRS no está en la lista de libros que recomiendo a los autoaprendices)

A medida que te acerques a lo teórico, estos libros serán muy esclarecedores:

  1. Cómo demostrarlo 2º: una introducción suave a las matemáticas necesarias para un aprendizaje más riguroso
  2. Cómo pensar en algoritmos: no es otro libro de algoritmos, sino que este enseña la mentalidad adecuada y cómo pensar (correctamente) al resolver algoritmos. Lo estoy revisando ahora y aprendiendo un montón mientras corrijo mi enfoque sobre ellos
  3. Análisis de algoritmos: un enfoque de aprendizaje activo 2º: un enfoque relativamente aplicado para estudiar algoritmos, pero no demasiado imposible para un autodidacta. También pasando por esto al mismo tiempo que lo anterior, pero mucho más casualmente

Fuera de eso, algunos otros libros que encontré particularmente interesantes y semi accesibles

  1. Razonamiento Matemático 2do

Para aprender las matemáticas, recogí (todos) los libros y el manual de soluciones de:

  • http://artofproblemsolving.com

Y:

  • Matemáticas discretas con aplicaciones 4º – No lo intente hasta que pase por artofproblemsolving y cómo probarlo (se proporcionan enlaces a ambos) o si ya tiene una sólida formación en matemáticas. Este tipo de libros es extremadamente difícil porque no puede obtener las soluciones fácilmente para verificar su comprensión.

Soy dueño de todos los libros anteriores (y toneladas más). He revisado algunos de ellos y he hecho referencia a otros. Sigo pasando por ellos. El (primer) libro # 3 de Thareja es realmente el único libro de introducción que necesita. Para aprenderlos correctamente (y cómo lo enseño): aprenda a visualizar cómo se ve la estructura en la memoria de la computadora y practique implementarlos una y otra vez y mezclar y combinar hasta que sea una segunda naturaleza. Por ejemplo, implemente un vector (matriz dinámica) utilizando matrices y listas doblemente vinculadas cuando llegue a él. Hágalo de manera procesal (pase el almacenamiento) y nuevamente usando OOP donde está contenido en el objeto. Mezcla y combina. No solo memorices.

Muchos de los libros implementarán un pseudocódigo del algoritmo y luego harán muchas preguntas sobre las matemáticas detrás de esto y podría dejarlo con la tarifa de que no aprendió nada. Eso es lo que me gusta de todos los libros que recomiendo anteriormente: se centran más en aprender los algoritmos que en las matemáticas (y a veces omiten las matemáticas por completo). Ese es un enfoque lo suficientemente bueno como para superar las entrevistas, pero tal vez no sea su clase de CS.

Esta es mi preferencia personal. Puede haber muchos otros buenos libros.

1. CLRS : el clásico libro de texto completo sobre algoritmos. Una lectura obligada al menos una vez en la carrera del programador.

2. Introducción a los algoritmos: un enfoque creativo de Udi Manber : un excelente libro sobre diversas categorías de algoritmos. Muchas preguntas interesantes en los portales web como preguntas de entrevista se pueden encontrar en este libro. Los ejercicios de fin de capítulo son un activo. Uno debe intentar la sección “Problemas creativos” al final de cada capítulo. Si un programador quiere conocer el poder de la inducción como un enfoque de resolución de problemas, debe leer este libro. Muy recomendable

3. El manual de diseño de algoritmos de Skiena : muchos problemas algorítmicos y debates, historias de guerra, problemas relacionados, ejercicios interesantes. Ayuda a modelar un problema de diferentes maneras. Un libro de trabajo imprescindible para todo programador apasionado. No lea esto a menos que tenga una buena comprensión de los algoritmos.

4. Algoritmos de Das Gupta : libro preciso sobre algunas categorías algorítmicas, elija cualquier capítulo en función del interés e intente los ejercicios de fin de capítulo.

5. Algoritmos 4e de Sedgewick – Libro de nivel relativamente principiante, cubre gráficos, cadenas, hash, búsqueda, clasificación, etc. muy bien. Sigue el enfoque OOP en Java. Muy recomendable para principiantes, aunque nada detiene a un profesional. Portal web que contiene muchos ejercicios interesantes. Hay otros libros de Sedgewick sobre Algoritmos. Recomendado para el aprendizaje de estructura de datos.

6. Introducción al diseño y análisis de algoritmos por Levitin – Un libro introductorio en diseño de algoritmos. Recomendado para principiantes. Uno puede disfrutar de la explicación y resolver los ejercicios de fin de sección.

Sobre el estilo de programación:
1. Programming Pearls por Bentley – Un libro de lectura obligatoria sobre diseño e implementación de programas de computadora.

2. La práctica de la programación por Kernighan : escrita durante los días de Unix, sigue siendo uno de los mejores recursos en diseño de programas y principios de implementación.

3. Programación avanzada en el entorno Unix por W. Richard Stevens – Cubre muchos internos de Unix y API a nivel de núcleo. Sigue un excelente estilo de programación. Los libros de Stevens son uno de los mejores en su categoría. Yo diría que se encuentran en el nivel de CLRS en la categoría de algoritmos. Muy recomendable

Bueno, dijiste que tienes 2 semanas en tu mano y quieres aprender algo de algoritmo y estructura de datos para que te vaya bien en la competencia. Por supuesto, hay algunos libros y recursos disponibles que pueden ayudarlo a aprender algunos algoritmos y estructuras de datos, pero también hay algunos problemas.

Al principio, aprender algo en un tiempo limitado depende de tu cerebro. Solo usted puede responder la pregunta de que puede aprender algo en poco tiempo o no. En algún momento, una estructura de datos simple o un algoritmo tardan más tiempo en comprender, por otro lado, a veces las mismas personas pueden aprender y comprender más en menos tiempo. Solo depende de la persona que está aprendiendo.

Ahora lo segundo es que no me gusta aprender cosas nuevas antes de una o dos semanas del concurso. Creo que este es el mejor momento para revisar los temas que ya ha aprendido. Para hacerlo bien en la competencia solo necesitas creer en ti mismo que puedes hacerlo. Esta confianza obtendrá el éxito deseado. Antes de dos semanas de concurso, les aconsejo a todos que resuelvan algunos problemas de dificultad media y fácil, simulación y algunos problemas de tipo codicioso que pueden resolver si pasan algún tiempo en ello. Y cuando lo resuelven con éxito, aumenta su nivel de confianza. Y el conocimiento algorítmico siempre es importante para la programación de concursos y el mejor momento para aprender algoritmos es su tiempo libre y relajado cuando puede aprenderlos de memoria y con la mente libre. Este es solo mi enfoque. Pero creo que todos tienen un enfoque de aprendizaje diferente. Si se siente cómodo con su enfoque, puede seguirlos. Aquí hay algunos recursos que usted pidió:

  1. Programación competitiva 3- Por felix Halim Enlace PDF – Programación competitiva 3.pdf
  2. Manual del programador competitivo – un nuevo libro sobre programación competitiva – Codeforces. Enlace PDF – https://cses.fi/book.pdf
  3. Buenos recursos de publicaciones de blog sobre algoritmos y estructuras de datos – Codeforces
  4. Algoritmos – GeeksforGeeks
  5. Programa de campamento de programación
  6. Estructuras de datos y algoritmos
  7. ¡Una lista increíble para programación competitiva! – Fuerzas de código
  8. Tutoriales de ciencia de datos

Puedes echar un vistazo a este artículo. Espero que te ayude-

La respuesta de Thanh Trung Nguyen a ¿Cuál es la mejor estrategia para mejorar mis habilidades en programación competitiva en C ++ en 2-3 meses?

Mi último pedido / consejo es que no intentes aprender algo en poco tiempo. Pase tiempo para aprender y aprenda el tema completa y completamente. Te ayudará a largo plazo. 🙂

El libro más estándar es Introducción a los algoritmos , de Cormen, Leiserson, Rivest y Stein. Se utiliza en muchos cursos de algoritmos de introducción a la universidad.


Amazon: http://www.amazon.com/Introducti

1) Estructuras de datos y algoritmos simplificados por Narasimha Karumanchi

Las estructuras de datos y los algoritmos simplificados explican la estructura de datos y los conceptos de algoritmo con el código fuente. El usuario puede comprender conceptos y probar con el compilador C / C ++. Si el usuario quiere aprender usando el lenguaje de programación java, usa “Estructuras de datos y algoritmos fáciles en Java”. Este libro explica los conceptos en 21 capítulos que cubren Recursion and Backtracking, Listas vinculadas, Pilas, Colas, Árboles, Cola prioritaria y montones, Algoritmos de cadena, Técnicas de diseño de algoritmos y más. También explica con múltiples enfoques para cada problema. El usuario puede comprender el análisis de algoritmos para cada problema.

Lenguaje de programación: C / C ++

Código fuente: carreramonk / DataStructuresAndAlgorithmsMadeEasy

2) Estructuras de datos y algoritmos en Java, segunda edición de Robert Lafore

Las estructuras de datos y los algoritmos en Java explican los conceptos en el nivel básico. Este libro explica los conceptos que utilizan Java Build en funciones de biblioteca y futuros de Java. También agrega las soluciones sugeridas a los proyectos de programación para cada capítulo. El usuario puede descargar el código fuente. Este libro fue escrito como un libro de texto para un curso de “Estructuras de datos y algoritmos” y se cubren todos los temas esperados; matrices, colas, pilas, listas vinculadas, árboles, tablas hash, montones, clasificación, recursión y búsqueda.

Lenguaje de programación: Java

Código fuente: estructuras de datos y algoritmos en Java, segunda edición

3) El Manual de Diseño de Algoritmo, 2da Edición por Steven S Skiena

El manual de diseño de algoritmos ayuda a preparar la entrevista de programación. Los buenos diseñadores de algoritmos comprenden varias técnicas fundamentales de diseño de algoritmos, incluidas las estructuras de datos, la programación dinámica, la búsqueda en profundidad, el seguimiento y la heurística. Este libro explica conceptos básicos con Pseudocódigo. El pseudocódigo se puede transferir a cualquier lenguaje de programación sin mucha dificultad. The Steve Yegge – Get that Job en Google recomienda el libro Algorithm Design Manual para la preparación de entrevistas en Google. Este libro también agrega las historias de la guerra mundial real donde se utilizan la estructura de datos y los conceptos de algoritmos.

Lenguaje de programación: C / Pseudocódigo

Código fuente: Programas de

4) Introducción a los algoritmos, tercera edición de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

El libro Introducción a los algoritmos cubre una amplia gama de algoritmos en profundidad. Puede ser utilizado por todos los niveles del programador, desde estudiantes graduados hasta profesionales que trabajan. Este libro explica el concepto usando Pseudocódigo. Se puede transferir cualquier lenguaje de programación sin mucha lucha. Es un libro de texto completo que cubre el espectro completo de algoritmos modernos, incluida la teoría de gráficos, la coincidencia de cadenas, la geometría computacional, la teoría de números y los algoritmos multiproceso. Este libro ayuda a preparar la entrevista de programación. Puede tomar más tiempo prepararse.

Lenguaje de programación: Pseudocódigo

Código fuente: https: //notebookbft.files.wordpr

5) Algoritmos, 4a edición de Robert Sedgewick, Kevin Wayne

Los algoritmos son hoy el libro de texto líder en algoritmos y se usan ampliamente en colegios y universidades de todo el mundo. Este libro analiza los algoritmos informáticos más importantes actualmente en uso y proporciona un tratamiento completo de las estructuras de datos y algoritmos para la clasificación, búsqueda, procesamiento de gráficos y procesamiento de cadenas. El autor mantiene el portal en línea que contiene el código fuente completo de trabajo. El alumno puede comprender fácilmente la estructura de datos y el algoritmo utilizando el lenguaje de programación Java.

Lenguaje de programación: Java

Código fuente: Algoritmos, 4ta Edición

Fuente-INTERNET

Bien, tuve la tentación de responder esto, ya que muchas respuestas aquí se refieren solo a los Algoritmos pero no a las Estructuras de Datos. Hay una diferencia entre estructuras de datos y algoritmos. Creo que recién estás comenzando, así que para explicarlo mejor en términos simples con una analogía, Algoritmos: La distancia más corta desde tu casa hasta la de tus novias. DataStructures: Coche / Motocicleta que usa para recogerla (puede decir las herramientas utilizadas para lograrlo). Primero debe tener / alquilar un automóvil / motocicleta o al menos conocer cualquier medio de transporte para llegar a la casa de su novia, solo entonces piensa en cómo / mapa-una forma de llegar allí en el tiempo dado / limitaciones.

Ahora para responder a su pregunta, primero debe aprender DataStructures (modos de transporte como se describe anteriormente) y luego aprender a usar esas DataStructures para implementar grandes algoritmos (la distancia más corta de su casa y la de sus novias o la distancia más larga (viaje largo) con ella en la parte de atrás, por supuesto! Si eres lo suficientemente inteligente y decidido, puedes aprender ambos (DS y Algos) simultáneamente. Así que ahora tendrá que encontrar un libro que hable sobre DS y Algoritmos o simplemente encontrar dos libros diferentes que hablen sobre cada tema por separado. Personalmente, le recomiendo que refiera dos libros diferentes (tómese el tiempo y profundice) ya que modularizar el contenido dividiéndolo en dos clases diferentes le facilita la vida.

Solo para DS, hay muchos buenos libros, pero puede referirse a Estructuras de datos y algoritmos simplificados por Narasimha K., ya que brinda una comprensión profunda de los conceptos básicos y le brinda una visión / ideas adecuadas sobre las estructuras de datos más altas posibles relacionadas con los algoritmos. Ahora, para Algos. Introducción al libro de algoritmos de Charles E. Leiserson , Clifford Stein , Ronald Rivest y Thomas H. Cormen ( CLRS como lo llamamos) es un libro excelente y habla principalmente sobre algoritmos. Este libro confunde a algunas personas que tienen conocimiento algorítmico previo, pero si recién está comenzando, ¡adelante! Aunque el tamaño del libro puede asustarte al principio, pero una vez que comiences a leer y practicar te sentirás muy apegado al libro. Es un buen libro en el que confían profesores / profesores de renombre para enseñar algoritmos. CLRS también es citado por el programa de cursos abiertos del MIT y Erik Demaine habla sobre esto en uno de los videos del curso abierto del MIT.

Bienvenido y feliz codificación !!

Las Estructuras de datos de Seymour Lipschutz y la Introducción a los algoritmos de Thomas H Cormen, Charles E Leiserson, Ronald L Rivest y Clifford Stein, son sin duda los mejores libros para aprender Estructuras de datos y Algoritmos, tanto para principiantes como para profesionales. Y sí, los libros sirven para el estudio y la autoevaluación.

Veamos por qué las estructuras de datos y la introducción a los algoritmos se destacan por ser las mejores opciones …

Estructuras de datos:

  • Tiene una calificación de 5 estrellas y muchas reseñas en Amazon. La mayoría de ellos son positivos, excepto los que odian. ¡Los enemigos están en todas partes!
  • Es independiente de la máquina y el lenguaje.
  • Adopta un enfoque elemental del tema con muchos ejemplos y diagramas.
  • Está diseñado como un libro de texto o suplemento para un auto estudio efectivo.
  • Las características especiales incluyen la presentación de algoritmos en pseudocódigo y una discusión detallada sobre AVL Serach Trees, m-way Serach Trees y B Trees.
  • Es increíblemente suave, paso a paso, enfocándose en lo que necesita saber.
  • Contiene excelentes ejemplos que continúan expandiéndose a medida que profundiza.
  • Y mucho más..

Introducción a los algoritmos:

  • Tiene una calificación de 4 estrellas y 184 comentarios en Amazon. La mayoría de ellos son positivos, excepto los que odian. ¡Los enemigos están en todas partes!
  • Combina de manera única rigor y amplitud.
  • 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 puede usarse como una unidad de estudio.
  • Describe algoritmos en inglés de modo que sea legible para cualquier persona con conocimientos básicos de programación.
  • Presenta nuevos capítulos sobre el papel de los algoritmos, el análisis probabilístico y los algoritmos aleatorios, la programación lineal, los árboles de Van Emde Boas, los algoritmos multiproceso y más.
  • Es increíblemente suave, paso a paso, enfocándose en lo que necesita saber.
  • Contiene excelentes ejemplos que continúan expandiéndose a medida que profundiza.
  • Y mucho más..

Una vez que termine las Estructuras de datos y la Introducción a los algoritmos, tendrá una idea detallada de los conceptos. Aprender con perfección es indudablemente más importante que aprender meros hechos.

Recomendación final:

Las Estructuras de datos y la Introducción a los algoritmos siempre se destacan como los mejores libros de Estructuras de datos y Algoritmos, tanto para principiantes como para expertos en términos de conceptos, y ciertamente mucho mejor que otros recursos disponibles …

¡¡¡Disfruta leyendo!!!

“1) Estructuras de datos y algoritmos simplificados por Narasimha Karumanchi

Las estructuras de datos y los algoritmos simplificados explican la estructura de datos y los conceptos de algoritmo con el código fuente. El usuario puede comprender conceptos y probar con el compilador C / C ++. Si el usuario quiere aprender usando el lenguaje de programación java, usa “Estructuras de datos y algoritmos fáciles en Java”. Este libro explica los conceptos en 21 capítulos que cubren Recursion and Backtracking, Listas vinculadas, Pilas, Colas, Árboles, Cola prioritaria y montones, Algoritmos de cadena, Técnicas de diseño de algoritmos y más. También explica con múltiples enfoques para cada problema. El usuario puede comprender el análisis de algoritmos para cada problema.

Recomendamos los 10 mejores libros de algoritmos y estructura de datos que ayudan a aprender la estructura de datos y los fundamentos del algoritmo. Seleccionamos libros basados ​​en nuestra experiencia y explicamos los factores involucrados con cada selección de libros. No calificamos ningún libro y cada libro tiene una buena cobertura de temas. Tenemos una gran cantidad de estructura de datos y material de algoritmos que está disponible gratuitamente en Internet. Pero, cuando el candidato comienza a leer en Internet, puede desviarse del aprendizaje de la estructura de datos y el algoritmo y es posible que no pueda cubrir todos los temas. Los libros ayudan a aprender la estructura de datos y el algoritmo de una manera enfocada sin mucha perturbación. Si el alumno aprende la estructura de datos y el algoritmo en el plan de estudios, puede navegar por la siguiente página de ensayos analíticos .

1) Estructuras de datos y algoritmos simplificados por Narasimha Karumanchi

Las estructuras de datos y los algoritmos simplificados explican la estructura de datos y los conceptos de algoritmo con el código fuente. El usuario puede comprender conceptos y probar con el compilador C / C ++. Si el usuario quiere aprender usando el lenguaje de programación java, usa “Estructuras de datos y algoritmos fáciles en Java”. Este libro explica los conceptos en 21 capítulos que cubren Recursion and Backtracking, Listas vinculadas, Pilas, Colas, Árboles, Cola prioritaria y montones, Algoritmos de cadena, Técnicas de diseño de algoritmos y más. También explica con múltiples enfoques para cada problema. El usuario puede comprender el análisis de algoritmos para cada problema.

2) Estructuras de datos y algoritmos en Java, segunda edición de Robert Lafore

Las estructuras de datos y los algoritmos en Java explican los conceptos en el nivel básico. Este libro explica los conceptos que utilizan Java Build en funciones de biblioteca y futuros de Java. También agrega las soluciones sugeridas a los proyectos de programación para cada capítulo. El usuario puede descargar el código fuente. Este libro fue escrito como un libro de texto para un curso de “Estructuras de datos y algoritmos” y se cubren todos los temas esperados; matrices, colas, pilas, listas vinculadas, árboles, tablas hash, montones, clasificación, recursión y búsqueda.

3) El Manual de Diseño de Algoritmo, 2da Edición por Steven S Skiena

El manual de diseño de algoritmos ayuda a preparar la entrevista de programación. Los buenos diseñadores de algoritmos comprenden varias técnicas fundamentales de diseño de algoritmos, incluidas las estructuras de datos, la programación dinámica, la búsqueda en profundidad, el seguimiento y la heurística. Este libro explica conceptos básicos con Pseudocódigo. El pseudocódigo se puede transferir a cualquier lenguaje de programación sin mucha dificultad. The Steve Yegge – Get that Job en Google recomienda el libro Algorithm Design Manual para la preparación de entrevistas en Google. Este libro también agrega las historias de la guerra mundial real donde se utilizaron la estructura de datos y los conceptos de algoritmos “.

Fuente: http://careerdrill.com/blog/prof

  1. Algoritmos Por: Robert Sedgewick y Kevin Wayne Este libro está diseñado para cada programador y cubre los algoritmos más importantes que todo programador debe saber. La característica diferenciadora de este libro es el código fuente que se puede utilizar para resolver problemas en tiempo real.
  2. Estructuras de datos y algoritmos simplificados: estructura de datos y acertijos algorítmicos Por: Narasimha Karumanchi Si tiene algún conocimiento básico de algoritmos, este libro es perfecto para usted. Este libro consta de todos los algoritmos importantes que uno podría aprender a través de cualquier curso universitario. El libro está escrito de una manera fácil de entender y ofrece conceptos detallados.
  3. Estructuras de datos y algoritmos en Java Por: Robert Lafore Las estructuras de datos y los algoritmos se encuentran entre los aspectos más difíciles de la informática, pero este libro lo convierte en un proceso divertido y fácil de aprender. Comienza con estructuras de datos básicas que incluyen matriz, pilas, árboles, colas, tablas hash, clasificación, búsqueda y recursión.

Aquí hay una lista de libros en línea sobre algoritmos y estructuras de datos en varios formatos disponibles de forma gratuita:

Avances en algoritmos evolutivos
por Witold Kosinski, 2008, 284 páginas, 40 MB, PDF

Avances en programación genética, vol. 3
editado por L. Spector, WB Langdon, U. O’Reilly, PJ Angeline, 1999, PDF

Álgebra Algorítmica
por Bhubaneswar Mishra, 1993, 425 páginas, 2.3MB, PDF

Teoría de grafos algorítmicos
por David Joyner, Minh Van Nguyen, Nathann Cohen, 2010, 105 páginas, 760 KB, PDF

Teoría de la información algorítmica
por Gregory. J. Chaitin, 2003, 236 páginas, 0.9MB, PDF

Matemáticas Algorítmicas
por Leonard Soicher, Franco Vivaldi, 2004, 94 páginas, 0.5MB, PDF / PS

Teoría de números algorítmicos
por JP Buhler, P. Stevenhagen, 2008, 662 páginas, PDF

Algoritmos
por Robert Sedgewick, Kevin Wayne, 2011

Algoritmos
por S. Dasgupta, CH Papadimitriou y UV Vazirani, 2006, 336 páginas, 2MB, PDF

Algoritmos y Estructuras de Datos
por Niklaus Wirth, 1985, 179 páginas, 1.2MB, PDF

Algoritmos y estructuras de datos para memoria externa
por Jeffrey Scott Vitter, 2008, 191 páginas, 1.1MB, PDF

Algoritmos y estructuras de datos: la caja de herramientas básica
por K. Mehlhorn, P. Sanders, 2008, PDF

Algoritmos para agrupar datos
por Anil K. Jain, Richard C. Dubes, 1988, 334 páginas, 39MB, PDF

Algoritmos para curvas elípticas modulares
por JE Cremona, 1992, 351 páginas, PDF

Algoritmos: Técnicas Fundamentales
por Macneil Shonle, Matthew Wilson, Martin Krischik, 2006, 68 páginas, 1.2MB, PDF

Análisis de casos promedio de algoritmos en secuencias
por Wojciech Szpankowski, 2000, PS

Comportamiento de algoritmos
por Daniel Spielman, 2002, PDF

Categorías, tipos y estructuras
por Andrea Asperti, Giuseppe Longo, 1991, 300 páginas, PDF

Algoritmos inteligentes: recetas de programación inspiradas en la naturaleza
por Jason Brownlee, 2011, 436 páginas, 3MB, PDF

Algoritmos Combinatorios
por Albert Nijenhuis, Herbert S. Wilf, 1978, 316 páginas, 5.5MB, PDF

Algoritmos Combinatorios
por Jeff Erickson, 2003, 197 páginas, 1.9MB, PDF

Álgebra lineal computacional y algorítmica y geometría n-dimensional
por Katta G. Murty, 2001, 554 páginas, PDF

Geometría Computacional: Métodos y Aplicaciones
por Jianer Chen, 1996, 227 páginas, 1.3MB, PDF

Estructuras de datos
por Dave Mount, 2001, 123 páginas, 730 KB, PDF

Estructuras de datos y análisis de algoritmos
por Clifford A. Shaffer, 2012, 613 pp, 2.6MB, PDF

Estructuras de datos y algoritmos
por John Morris, 1998

Diseño y Análisis de Algoritmos Computacionales
por David M. Mount, 2003, 135 páginas, 0.8MB, PDF

El diseño de algoritmos de aproximación
por DP Williamson, DB Shmoys, 2010, 496 páginas, 2.3MB, PDF

Algoritmos eficientes para ordenar y sincronizar
por Andrew Tridgell, 1999, 115 páginas, 410 KB, PDF

Fundamentos de la metaheurística
por Sean Luke, 2009, 233 páginas, 5.3MB, PDF

Algoritmos Evolutivos
editado por Eisuke Kita, 2011, 584 páginas, 30MB, PDF

Evolucionado para ganar
por Moshe Sipper, 2011, 193 pp, 1.9MB, PDF

De algoritmos a puntajes Z: modelado probabilístico y estadístico en informática
por Norm Matloff, 2013, 486 pp, 3.4MB, PDF

Algoritmos Genéticos y Computación Evolutiva
por Adam Marczyk, 2004

Programación genética: nuevos enfoques y aplicaciones exitosas
editado por Sebastian Ventura, 2012, 284 pp, 6.5MB, PDF

Algoritmos codiciosos
por Witold Bednorz, 2008, 586 páginas, 47MB, PDF

Introducción a los algoritmos
por Erik Demaine, Srinivas Devadas, Ronald Rivest, 2008, PDF

Problemas de mochila: algoritmos e implementaciones informáticas
por Silvano Martello, Paolo Toth, 1990, 308 páginas, 23MB, PDF

Notas de clase sobre análisis de algoritmos y complejidad computacional
por Ian Parberry, 119 páginas, 1.9MB, PDF

Notas de la conferencia sobre algoritmos de cubeta
por Luc Devroye, 1986, 142 páginas, 4 MB, PDF

Matemáticas para Algoritmo y Análisis de Sistemas
por Edward A. Bender, S. Gill Williamson, 2005, 256 páginas, PDF

Aritmética informática moderna
por Richard P. Brent, Paul Zimmermann, 2009, 239 páginas, 1.9MB, PDF

Algoritmos de planificación
por Steven M. LaValle, 2006, 842 páginas, 13.2MB, PDF

Resolución de problemas con algoritmos y estructuras de datos usando Python
por Brad Miller, David Ranum, 2011

Problemas sobre algoritmos, 2a edición
por Ian Parberry, William Gasarch, 2002, 268 páginas, 2.4MB, PDF

Algoritmos Cuánticos
por Michele Mosca, 2008, 71 páginas, PDF / PS

Algoritmos cuánticos para problemas algebraicos.
por Andrew M. Childs, Wim van Dam, 2008, 52 páginas, PDF / PS

Algoritmos Aleatorios
por Wolfgang Merkle, 2001, 46 pp, 370KB, PDF

Algoritmos de búsqueda y aplicaciones
editado por Nashat Mansour, 2011, 494 páginas, 18MB, PDF

Algoritmos de clasificación secuencial y paralela
por HW Lang, 2000

Ordenar y buscar algoritmos: un libro de cocina
por Thomas Niemann, 2008, 36 páginas, 150 KB, PDF

Temas en Ciencias de la Computación Teórica: un juego de herramientas de un algoritmo
por Jonathan Kelner, 2009, PDF

No hay un * mejor * libro para aprender algoritmos y estructuras de datos. Lo que funcionó para mí podría no funcionar para usted y viceversa. Sin embargo, puedo recomendar algunos libros que puede estudiar para comenzar en el campo:
Novato: – Sams te enseña estructuras de datos y algoritmos en 24 horas: Robert Lafore
Intermedio: – Algoritmos en C ++, Partes 1-4: Fundamentos, Estructura de datos, Clasificación, Búsqueda, Tercera edición: Robert Sedgewick
Algoritmos en C ++ Parte 5: Algoritmos de gráficos (3a edición) (Pt.5): Robert Sedgewick
Avanzado: – Introducción a los algoritmos: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

En cuanto a los algoritmos, el último libro es, de hecho, el primer libro sobre algoritmos. Entonces, como dije, no hay * THE BOOK * en estructuras de datos y algoritmos.

En lo que respecta a su segunda pregunta, estoy realmente ridiculizado al ver la cantidad de desesperación por dominar este campo. Quiero decir, ¿es todo esto para conseguir un trabajo? Realmente no creo que estés realmente interesado en aprender este campo. Si no, entonces no corras tras él como un loco. Simplemente aprenda los conceptos básicos y desarrolle sus habilidades en algún campo que le interese. Como dijo Kartik Kukreja, no hay límite de tiempo para mejorar tus habilidades. Simplemente disfruta del viaje y no te preocupes por el destino.

Si tiene que aprender algo en informática, esto es: ¿cuáles son las diversas formas de almacenar información y qué algoritmos se utilizan para almacenar / actualizar esa información?

Oldie pero aún sorprendentemente relevante: The Art of Computer Programming por Donald Knuth, Volumen I (los otros volúmenes también son geniales). Aprendí estructuras de datos de la edición de 1969 de este libro, y * todavía * lo uso como referencia.

Reemplazo moderno de Knuth: Introducción a los algoritmos | La prensa del MIT. Este también es un muy buen libro.

Es probable que ninguno de estos sea fácil de leer, pero ambos contienen lecciones increíblemente útiles para el lector determinado. (Si no está determinado, no aprenderá sobre las estructuras de datos, o la programación sensata, para el caso). Sorprendentemente, Knuth escribe en dos estilos: discusión directa, y luego se sumerge en las matemáticas básicas donde le apetece. No tiene que leer las matemáticas hardcore para obtener un gran valor del libro.

Necesitas saber ensamblador, o un lenguaje ensamblador como el lenguaje de programación, al menos en el nivel de principiante. C será un lenguaje de programación bastante decente para esto. Si eres un principiante, los punteros inicialmente serán un misterio, pero los libros de estructuras de datos te enseñarán por qué son interesantes, y realmente dejarán de ser un misterio, y en su lugar se convertirán en un arma que usas en la construcción de software. [Para los programadores de Java y C #: los objetos son solo una forma divertida de decir “puntero a estructura”. Debido a que Java y C # ocultan los punteros, creo que C es el mejor lenguaje de programación para aprender estructuras de datos, porque los punteros son todos explícitos].

Anexo: Una de las lecciones que querrá aprender es que un puntero es solo una estructura de datos también. En particular, utiliza punteros para buscar cosas a través de algún tipo de motor de recuperación. A veces, ese motor es la CPU que realiza la búsqueda de memoria desde esa ubicación de memoria apuntada, y a veces es el software que usted escribe para realizar la búsqueda (por ejemplo, las teclas en un mapa asociativo son “punteros” en sentido abstracto). Si esta idea no tiene sentido inmediato para usted, vaya a estudiar las estructuras de datos un poco más. Una vez que decide que puede controlar lo que está “en” un puntero, puede tratarlo de repente como datos y agregar etiquetas, comprimirlas, interpretarlas de manera extraña. Estos son trucos de la vieja escuela pero increíblemente útiles cuando se construyen sistemas complejos.

Las estructuras de datos y los algoritmos juegan un papel muy importante en la ingeniería informática.

Estos son algunos de los libros más valiosos y más vendidos en este campo.

  1. Estructuras de datos y algoritmos simplificados: estructuras de datos y acertijos algorítmicos

  1. Muchas figuras en el libro, que muestran cómo la estructura de datos se modifica y actualiza paso a paso. Esto es extremadamente importante para un principiante: aprenda con ejemplos. La visualización de una estructura de datos siempre es más fácil de entender que el texto.
  2. La sección de problemas después de cada capítulo enumeró muchas preguntas relevantes ** con soluciones (código incluido) **. Aunque eso significa que no puedo simplemente elegir los problemas en el libro de texto como tareas para los alumnos, creo que esto les permitirá a los alumnos pensar más sobre cómo utilizarían la estructura de datos que acaban de aprender, y ver si sus pensamientos coinciden con la solución.
  3. Muchos problemas en la sección de problemas de cada capítulo adoptan el enfoque de desarrollar la solución desde la más ingenua, luego algunas intermedias y, finalmente, la mejor solución disponible. Esta es una de las características que más me gusta de este libro. Los estudiantes pueden ganar mucho al pasar por este proceso.

Obtenga su copia aquí: Estructuras de datos y acertijos algorítmicos, quinta edición: Narasimha Karumanchi: 9788193245279: Amazon.com: Libros

2. El manual de diseño de algoritmos

Duplica el material tutorial y los ejercicios durante la primera edición.

• Proporciona soporte completo en línea para profesores, y un componente de sitio web completamente actualizado y mejorado con diapositivas, audio y video.

• Contiene un catálogo único que identifica los 75 problemas algorítmicos que surgen con mayor frecuencia en la práctica, guiando al lector por el camino correcto para resolverlos.

• Incluye varias NUEVAS “historias de guerra” que relatan experiencias de aplicaciones del mundo real

Proporciona enlaces actualizados que conducen a las mejores implementaciones de algoritmos disponibles en C, C ++ y Java

Obtenga su copia aquí: Steven S Skiena: 8601404387784: Amazon.com: Libros

3. Descifrando la entrevista de codificación: 189 preguntas y soluciones de programación

  • 189 preguntas de entrevistas de programación, que van desde lo básico hasta los problemas de algoritmos más complicados.
  • Un recorrido sobre cómo derivar cada solución, para que pueda aprender cómo llegar allí.
  • Consejos sobre cómo resolver cada una de las 189 preguntas, al igual que lo que obtendría en una entrevista real.
  • Cinco estrategias comprobadas para abordar preguntas sobre algoritmos, de modo que pueda resolver preguntas que no haya visto.
  • Amplia cobertura de temas esenciales, como tiempo de O grande, estructuras de datos y algoritmos centrales.
  • Una mirada detrás de escena de cómo las principales compañías como Google y Facebook contratan desarrolladores.
  • Técnicas para prepararse y as el lado blando de la entrevista: preguntas de comportamiento.
  • Para entrevistadores y empresas: detalles sobre lo que hace una buena pregunta de entrevista y el proceso de contratación.

Obtenga su copia aquí: 189 Preguntas y soluciones de programación: Gayle Laakmann McDowell: 9780984782864: Amazon.com: Libros

4. Introducción a los algoritmos, 3a edición (MIT Press)

Algunos libros sobre algoritmos son rigurosos pero incompletos; otros cubren masas de material pero carecen de rigor. Introducción a los algoritmos combina de forma exclusiva el rigor y la exhaustividad. El libro 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 puede usarse como una unidad de estudio. Los algoritmos se describen en inglés y en un pseudocódigo diseñado para que cualquiera que haya realizado una pequeña programación pueda leerlo. Las explicaciones se han mantenido elementales sin sacrificar la profundidad de la cobertura o el rigor matemático.

(Personalmente, no sugiero este libro ya que contiene un lenguaje muy alto, es decir, es para el aprendizaje avanzado, no para el nivel intermedio o principiante)

Obtenga su copia aquí → Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros

¡Que tengas un buen día!

“Introducción a los algoritmos” por TH Cormen, CE Leiserson, RL Rivest y C. Stein se considera el libro de texto clásico sobre algoritmos y estructuras de datos. El único problema puede ser que no es realmente una “introducción”, que abarca mucho más material del necesario para un principiante y también lo hace de una manera bastante rigurosa (hay muchas pruebas en el libro que pueden no ser tan fáciles seguir).

R. Sedgewick y K. Wayne presentan un enfoque alternativo en el libro de texto llamado “Algoritmos”. Es más compacto, abarca solo los algoritmos más importantes que todo informático debería conocer, y también está extremadamente bien ilustrado. También hay un poco menos sobre las matemáticas subyacentes en este libro, pero más énfasis en la implementación de varios algoritmos en Java. En cierto sentido, este libro le enseña tanto algoritmos como las mejores prácticas de codificación. Una de las mejores cosas de este libro es que también tiene un MOOC asociado en Coursera (parte 1, parte 2). Creo que hacer este curso junto con leer el libro de texto es una excelente manera de comenzar a aprender sobre algoritmos.

Depende del lenguaje de programación que uses.

1- Por ejemplo, para la programación en Java, puede leer: Algoritmos y estructuras de datos o Estructuras de datos y algoritmos en Java

2- Si usa C ++ para programar, entonces las Estructuras de datos y Algoritmos en C ++ son buenos para leer.

3- Para los usuarios de Python, en su lugar hay: estructuras de datos y algoritmos en Python

4- Finalmente hay un libro interesante en Javascript para algoritmos y estructuras de datos: estructuras de datos y algoritmos con JavaScript

Una forma interesante de aprender y comprender mejor las estructuras de datos y cómo funcionan es visualizarlas como se explica en la siguiente publicación: Visualización de algoritmos y estructuras de datos por Alket Cecaj sobre algoritmos y fusión de datos

Los libros de Knuth son definitivamente para personas que tienen experiencia en matemáticas, algoritmos y programación. Al principio traté de usarlo, pero me perdí sin piedad en el segundo capítulo. Todavía no he comenzado a leerlo en serio, ya que es realmente complicado para los programadores nuevos en algoritmos.

El libro de Cormen es más adecuado para personas que han sido introducidas en matemáticas discretas y algo de programación. El conocimiento de los algoritmos no es totalmente necesario ya que el libro es una introducción. Puede ser útil conocer algunos algoritmos básicos (p. Ej., Búsqueda binaria y de profundidad) y algunos análisis de algoritmos básicos antes de entrar en él. Si decides leer el libro y te sientes perdido, no te preocupes. El diseño y análisis de algoritmos de Coursera enseñado por el profesor Roughgarden cubre muchos de los temas del libro de Cormen y el profesor Roughgarden es muy bueno para explicar los conceptos. Sus videos de conferencias se pueden encontrar en YouTube.

Recomiendo leer Algorithms by Sedewick primero. Solo supone que se siente cómodo con al menos un lenguaje de programación (preferiblemente Java, ya que ese es el lenguaje que el libro usa para implementar algoritmos). Es con lo que comencé, y me pareció una excelente introducción. Al igual que el curso de Roughgarden, el propio Sedgewick tiene un curso de Coursera. La desventaja es que sus videos no están en YouTube.

Bueno, definitivamente NO sugeriría Introducción a los Algoritmos. Sin duda es un libro avanzado y es más una especie de libro de referencia que cubre muchos temas. Mi recomendación personal sería ir a MOOC en lugar de un libro. Coursera ofrece algunos cursos sobre algoritmos, de los cuales dos son más famosos:

  1. De la Universidad de Princeton por Bob Sedgewick y Kevin Wayne.
  2. De la Universidad de Standford por Tim Roughgarden (Parte 1 y Parte 2)

Ambos son cursos increíbles y proporcionan una forma muy estructurada de aprender algoritmos. Puedes echar un vistazo en esos dos cursos. También le animo a que eche un vistazo a la respuesta de Siddhanth Deshpande a Coursera: cuál es mejor para los principiantes para aprender el tema, el curso “Algoritmos: diseño y análisis” impartido por Tim Roughgarden de Stanford, o el curso “Algoritmos” impartido por ¿Kevin Wayne y Robert Sedgewick de Princeton? . También cubre algunos puntos buenos con respecto a esos cursos.

Aprendí del Manual de diseño de algoritmo de Skiena ( http://www.amazon.com/Algorithm- …) y fue genial. Nos asignó su propio libro, pero nos dio las preimpresiones de la segunda edición para que no tuviéramos que comprarlas (con el entendimiento de que lo corregiríamos).

Es particularmente bueno porque, junto con las pruebas, da TONELADAS de intuición en forma de lo que llama Historias de guerra: ejemplos de lugares en la industria o de otra manera donde alguien le ha dado un problema que no pudieron resolver y él simplemente sacaría un algoritmo estándar . La mayoría son ejemplos bastante creativos y no obvios también.

El punto principal de este libro es enseñarle qué son los algoritmos, qué algoritmos existen, cómo funcionan y, lo más importante, cómo elegir uno de manera inteligente y rápida cuando se le presenta un problema. Ningún otro libro que he visto aborda muy bien el último punto.

  • Dado que las estructuras de datos y los algoritmos van de la mano , seguramente los encontrará juntos en un libro / curso .
  • DS & Algo generalmente es independiente del idioma , por lo que una vez que los conozca (utilizando un pseudocódigo o cualquier idioma) más tarde, puede convertirlo fácilmente en la tecnología que elija .
  • Aquí intentaré categorizarlo wrt Facilidad de comprensión y contenidos cubiertos .

1.Libros: –

  • Fácil:
  • Estructuras de datos utilizando C por Reema Thareja.
  • Estructuras de datos de Seymour Lipschutz.

* Use ambos juntos, son de cortesía.

  • Avanzado:
  • CLRS ( Libro de referencia, wiki de DS y Algo )
  • Skienna ( aplicación del mundo real )
  • Tannenbum ( Simple )
  • Kleinberg-Tardos ( Mejores conceptos de gráficos con diferencia)
  • Adam Drozdek
  • Michael T. Goodrich y Roberto Tamassia
  • Mark Allen Weiss (Implementación recursiva )

2. Lectura en línea: –

  • GeeksforGeeks | Un portal informático para geeks

3. Videos: –

  • Fácil:
  • Estructuras de datos y algoritmos: IIT Kharagpur ( básico e intuitivo )
  • Computer Sc – Estructuras de datos y algoritmos
  • Avanzado:
    • MIT 6.006 Introducción a los algoritmos, otoño de 2011 ( Parte 1 )
    • MIT 6.046J Diseño y análisis de algoritmos, primavera de 2015 ( Parte 2 )

    4. Curso completo: –

    • Intermedio:
    • Algoritmos, Parte I – Universidad de Princeton | Coursera
    • Algoritmos, Parte II – Universidad de Princeton | Coursera
  • Avanzado:
    • Algoritmos | Coursera

    Algoritmos + Estructuras de datos = Programas

    es un libro de 1976 escrito por Niklaus Wirth que cubre algunos de los temas fundamentales de la programación de computadoras, particularmente que los algoritmos y las estructuras de datos están inherentemente relacionados. Por ejemplo, si uno tiene una lista ordenada, usará un algoritmo de búsqueda óptimo para listas ordenadas.

    El libro fue uno de los libros de informática más influyentes de la época y, al igual que el otro trabajo de Wirth, se usó ampliamente en la educación.

    El compilador Turbo Pascal escrito por Anders Hejlsberg se inspiró en gran medida en el compilador “Tiny Pascal” en el libro de Niklaus Wirth.

    Algoritmos + Estructuras de datos = Programas

    La ventaja de un lenguaje genérico como Pascal con fines de enseñanza es que puede traducirlo fácilmente a cualquier otro lenguaje, como C, C ++, Java, lenguaje ensamblador, etc. Pero también es fácil compilar y ejecutar código, por lo que Puedes verificar el trabajo de los estudiantes. Evita tener que aprender primero técnicas orientadas a objetos y cosas como plantillas de C ++, que pertenecen completamente a otra clase. Este libro no solo sigue siendo relevante, sino que también brinda una perspectiva histórica importante que muchos programadores jóvenes carecen de tristeza. Se está enseñando a demasiados programadores estudiantes con lenguajes de secuencias de comandos que ni siquiera tienen punteros, y no se dan cuenta de lo mal que se están modificando.