¿De dónde aprendo la estructura de datos?

Primero lea esta respuesta que escribí a una pregunta similar: la respuesta del usuario de Quora a ¿Cómo comienzo a aprender o fortalezco mi conocimiento de las estructuras de datos y algoritmos?

Cubre cómo comenzar y aprender algoritmos básicos. Escribí otras respuestas que te ayudan a comenzar con la programación competitiva. Léelos.

Echa un vistazo a este curso: estructuras de datos avanzadas. Es de MIT OpenCourseWare. Es muy teorico. Pero trate de implementar las ideas presentadas en cada conferencia.

Además, también hay un capítulo sobre “Estructuras de datos avanzadas” en “Introducción a los algoritmos”. Léelo Intenta repasar los detalles matemáticos y resolver los ejercicios.

Es muy difícil nombrar varias estructuras de datos que se utilizan para fines de nicho. Entonces, cada vez que encuentre algo que no sea lo que escuchó en la clase de algoritmos introductorios, puede pasar por ellos.

Aquí hay algunas estructuras de datos “avanzadas” que podría pensar en este momento.

  1. Segmente los árboles con propagación diferida : la mejor forma de aprenderlo y aplicarlo es la programación competitiva. Piense en ello como memorizar la estructura de árbol en algoritmos de divide y vencerás.
  2. Árboles indexados binarios / árboles Fenwick : es un poco complicado de explicar. Pero es extremadamente fácil de codificar. Consulte los tutoriales de TopCoder para obtener más información.
  3. Treap: es un árbol binario donde cada nodo, además de la clave, tiene alguna prioridad. Si sigues las teclas es un árbol de búsqueda binario. ¡Si sigues la prioridad, es un montón binario! El uso de prioridades aleatorias proporciona un árbol de búsqueda binario que está “probablemente equilibrado” sin ningún esquema de equilibrio (como AVL o árboles rojo-negros).
  4. Estructuras de sufijos de cadena (árbol de sufijos, autómata y matriz): son una representación concisa de varios sufijos de una cadena determinada. Puede encontrar varias subcadenas distintas, lexicográficamente kth subcadena, la subcadena más larga que se repite y muchas otras cosas interesantes.
  5. Estructuras de datos persistentes: en las estructuras de datos que implican actualizaciones, puede “viajar en el tiempo”. Es decir, se puede acceder a todas las versiones anteriores sin copiar toda la estructura de datos, lo que ahorra mucho espacio.
  6. Aho-Corasick Automaton: imagine que tiene un cuerpo y un texto grandes y que tiene que encontrar un par de palabras de manera eficiente. Este lo hace tan fácil. Es una extensión del algoritmo Knuth-Morris-Prat para encontrar un patrón en el texto dado.
  7. Link-Cut trees / Euler-tour trees – Mantenga árboles dinámicos, camino y agregados de subárbol de manera eficiente.

Incluso hay más como filtros Bloom, diagrama de Voronoi, conectividad dinámica en gráficos generales, etc.

¡Bienvenido a Algoland! Todo lo mejor 🙂

Además de todos los demás, un marco general a seguir para aprender las estructuras de datos se puede dividir en dos pasos principales:

Paso 1: aprende la teoría y los fundamentos

Comprender los principales temas fundamentales cubiertos en las estructuras de datos, tales como:

  • Algoritmos, matrices, colecciones, análisis de complejidad, gráficos, tablas hash, montones, listas enlazadas, colas, recursividad, búsqueda, clasificación, pilas, árboles

Puede consultar estos sitios web para ayudar a cubrir los fundamentos:

Aquí hay más escuelas que tienen clases de DS que pueden serle útiles:

  • COS 226, Otoño 2014: Página de inicio
  • Inicio | CS16
  • CS166: Estructuras de datos
  • Universidad de Washington en St. Louis CSE 241 Algoritmos y estructuras de datos
  • Harvard CSE 22 Estructuras de datos
  • Michigan EECS 281 Estructuras de datos y algoritmos
  • Programación Cornell CS 2110 OO y estructuras de datos
  • MiT 6.006 Introducción a los algoritmos

Paso 2: mira ejemplos, aplica tus conocimientos

Usando el conocimiento que ha aprendido de las fuentes anteriores, ahora aplicaría su conocimiento a través de la práctica. Los problemas de la entrevista son una buena forma de practicar estructuras de datos y algoritmos. Puedes ver:

  • Programación de preguntas de la entrevista | CareerCup
  • LeetCode
  • HackerRank
  • Descifrando el libro de entrevistas de codificación

Alternativamente, puede implementar diferentes algoritmos y estructuras de datos usted mismo para obtener una mejor comprensión de los fundamentos.

  • [BeeHyve] Implementaciones de diferentes estructuras de datos

Hay variedad de fuentes disponibles. En primer lugar, debe decidir en qué profundidad desea aprender las estructuras de datos.

  1. Aunque solo sea para los exámenes, puede pasar por DS & Algo Tutorial de NPTEL. Esto lo ayudará a comprender el concepto de cada estructura de datos. En apoyo de eso, hay un par de libros que encontré útiles como ” Advanced DS & Algo in C ++ by VVMuniswamy “, ” DS & Algo in C ++ by Michael T. Goodrich ” que incluyen implementaciones agradables junto con el concepto. Siempre trate de implementar usted mismo la estructura de datos que estudia. Esta es la mejor manera de aclarar el concepto estudiado. Para practicar, también puede consultar ” DS & Algo Made Easy by Narasimha Karumanchi “.
  2. Si el propósito es mejorar las habilidades de codificación, construya la base en el paso 1 y luego comience a leer los Tutoriales de ciencia de datos de TopCoder. Son útiles especialmente para Advanced DS (gráficos, Seg Tree, BIT, etc.) y para implementaciones en C ++ STL. Si desea mejorar sus habilidades de codificación, debe aprender el uso de STL. Además de aprender nuevas técnicas, es muy importante practicarlas regularmente en sitios de codificación como Codechef, Codeforces, Hackerrank, etc. Algunos de estos sitios web tienen una hermosa compilación para cada DS.
  3. Una vez que tenga lo básico claro, puede comenzar a consultar un libro avanzado como ” Introducción a los algoritmos por CLRS “, que es el libro de cocina para todos los DS y Algos necesarios. Pero debido a su lenguaje ligeramente complejo, no lo recomiendo a los principiantes. Después de un avance inicial, CLRS es el mejor para referirse. También puede ver las conferencias de MIT Opencourseware sobre Algoritmos y DS avanzado que encontré realmente útiles.
  4. Si se está preparando para codificar entrevistas, después de pasar por conceptos básicos, debe comenzar a practicar en preguntas de entrevistas reales. Recomiendo Interviewbit debido a su diseño interactivo y su conjunto de problemas distribuidos con dificultad. geeksforgeeks también es una muy buena fuente para referir preguntas sabias de la compañía. También se puede referir la carrera y la ” Entrevista sobre descifrar la codificación de Gayle Laakmann Mcdowell “.

Consulte cualquier buena fuente y comience a codificar. Buena suerte 🙂

¡Te sugiero que revises estos increíbles videos que enseñan algunos instructores increíbles!

MIT 6.006 Introducción a los algoritmos, otoño de 2011

NPTEL :: Informática e Ingeniería

mycodeschool

Luego, revise estos canales de sitios web, practique y participe en programación competitiva como:

Concurso de programación, concurso de programación, programación informática en línea

HackerRank

HackerEarth: desafíos de programación y trabajos de desarrollador

Preguntas de la entrevista de codificación

Estos son los sitios web y los canales que en realidad probé por mí y créanme Vale la pena su tiempo y esfuerzo.

Happy Coding 🙂

Le recomendaría que eche un vistazo rápido a las diferentes estructuras de datos fundamentales. Luego, profundice, sepa cómo funcionan exactamente estas estructuras de datos, cómo codificarlas, analizar, cuál es mejor que la otra y en qué situaciones.

Entonces, ¿cómo empezar? He escrito un tutorial que cubre la mayoría de las estructuras de datos fundamentales que encontrarás. A partir de matrices, listas, pilas, colas, colas de prioridad, matrices asociativas, tablas hash, conjuntos, árboles, árboles de búsqueda binaria, montones y gráficos.

El siguiente paso es inscribirse en Algorithms, Parte I, curso de la Universidad de Princeton en Coursera. Es la biblia de algoritmos y estructuras de datos.

Y, si no puedes, o quieres algo rápido. No se preocupe, también resumí este curso en una de mis series de tutoriales.

¡Espero eso ayude!

  1. Estructuras de datos y algoritmos simplificados: estructuras de datos y acertijos algorítmicos, quinta edición: Narasimha Karumanchi: 9788193245279: Amazon.com: libros Un libro muy bueno para principiantes
  2. Introducción a los algoritmos, 3a edición (MIT Press): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros El mejor libro para Algo y DS
  3. Amazon.com: Algoritmos desbloqueados (MIT Press) eBook: Thomas H. Cormen: Kindle Store Nuevo libro de Thomas Cormen
  4. The Algorithm Design Manual: Steven S Skiena: 8601404387784: Amazon.com: Libros

Si realmente te enfocaste y quieres aprender estructuras de datos, hay algunos tipos que te sugeriría:

Hacer claro el concepto de cada estructura de datos

Primero debe conocer los pros y los contras de cada estructura de datos y cuándo usarlos y, para esto, debe resolver todas las preguntas que pueda. Le sugeriría GeeksforGeeks | Un portal informático para geeks. Tiene muchas buenas preguntas ds. Puedes aprenderlo desde allí. Si quieres invertir algo de dinero, Gate Lectures de Ravindrababu Ravula también es un buen recurso.

La práctica te hace perfecto

Después de plantear tantas preguntas de programación, debe invertir algo de tiempo en la práctica. Para este propósito, los desafíos de programación y las competencias de codificación de HackerRank en HackerEarth son un buen lugar. Puede ingresar a la sección ‘Estructura de datos’ allí y mejorar sus habilidades.

Para cualquier consulta y sugerencia, puede enviarme un mensaje. Mi perfil de Facebook es Anurag Mishra. Cualquier sugerencia es bien recibida. Gracias.

Antes de comenzar con las fuentes, debe saber leer este artículo sobre: ​​¿Por qué estudiar la estructura de Algoritmo y Datos? comprender el uso y la importancia del tema, que suele ser la base de la programación.

Aunque algunos libros como Introducción al algoritmo de Thomas Cormen, son buenos para principiantes. Siempre encuentro una plataforma que me ayuda a programar mejor.

HackerEarth – La sección de práctica tiene varias pistas de programación básica, algoritmos, estructura de datos, matemáticas, aprendizaje automático.

Las pistas de Algorithm and Data Structure le brindan una gran cantidad de datos para aprender que se pueden practicar simultáneamente con problemas asociados a la sección de práctica.

La lista de estructuras de datos y algoritmos disponibles son detallados y completamente explicativos.

También puede probar: HackerEarth CodeMonk, que es una lista curada de temas y una guía paso a paso para la programación. Ayuda a aprender Estructura de datos, paso a paso, con tutoriales guiados y desafíos para practicar sus habilidades.

Hay muchos recursos en línea que ofrecen cursos de estructura de datos gratuitos y de pago.

Me gusta :

  1. Estructuras de datos y algoritmos | Coursera
  2. Fundamentos de las estructuras de datos (Este curso es proporcionado por IIT Bombay) ( edX )
  3. Introducción a las estructuras de datos ( edX )
  4. Implementación de estructuras de datos (Tome esta después de la introducción o después del aprendizaje de los conceptos básicos de la estructura de datos) ( edX )

También puede obtener certificaciones de estos cursos si completa el curso con éxito pero tiene que pagar por eso. Pero si no puede pagarlo, hay opciones para obtener becas.

Recomiendo ir con edX por experiencia personal.

Espero eso ayude

Todo lo mejor 🙂

Books :: data structure deepali srivastava, Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles – Compre Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles en línea a los mejores precios en India – Flipkart.com

youtube :: IDeserve

MIT OpenCourseWare

Ciencias de la Computación 61B – Otoño 2006

https://www.youtube.com/channel/

Hay toneladas de sitios y blogs para aprender la estructura de datos y el algoritmo. Voy a mencionar algunos populares:

1.) GeeksforGeeks | Un portal informático para geeks

2.) Code Monk – Sé un mejor programador

3.) Buenos recursos de publicación de blog sobre algoritmos y estructuras de datos – Codeforces

4.) PEGWiki (Para Algoritmos)

5.) ¡Una lista increíble para programación competitiva! – Codeforces: este sitio tiene una lista de excelentes recursos para la estructura de datos y el algoritmo.

6.) youtube (mycodeschool): Introducción a las estructuras de datos

6.) Para la estructura de datos y el algoritmo, puede tomar cursos MIT.

Introducción a la estructura de datos y al algoritmo: https://www.youtube.com/playlist

Diseño y análisis de algoritmo: https://www.youtube.com/playlist

Concepto avanzado: https://www.youtube.com/playlist

También hay toneladas de canales de youtube para la estructura de datos y algoritmos.

Por supuesto, hay muchos sitios web en línea para aprender como otros han mencionado

  • Introducción a los algoritmos (por MIT Courseware) (se puede ver en cualquier momento)
  • Algoritmos, Parte I – Universidad de Princeton | Coursera (Solo puede inscribirse en cierto período de tiempo, Coursera generalmente tiene una discusión muy activa y la base del período garantiza que no esté flojo)
  • Introducción a los algoritmos | Udacity (interactivo como Coursera y puede ver en cualquier momento)

Hay pocos más si busca en línea. Pero, déjame contarte más porque aprender no estará bien sin ciertas prácticas. Me topé con lo siguiente, que es una buena plataforma para practicar su conocimiento sobre programación en general (que prueba su estructura de datos básica al mismo tiempo):

  • Cracking the Coding Interview (Hackerrank) (en realidad consiste en una serie de preguntas que se dirigen a una sección específica de la estructura de datos)
  • Juez en línea de UVa – Inicio (un juez en línea con cientos de miles de preguntas de programación para responder, siempre puede encontrar preguntas que se dirigen a una estructura de datos específica en línea)

Comience con la abstracción de programación de la Universidad de Stanford. Mejorará sus habilidades de programación y le enseñará todas las estructuras de datos y algoritmos populares al mostrar cómo funcionan bajo el capó. Las conferencias son un poco rápidas, pero confía en mí, sería una buena invasión para un novato.

Stanford CS106B – YouTube

felicidades ahora no eres tanto un novato sino un oficial.

Ahora, vaya a la serie Introducción a los algoritmos de MIT OpenCourseWare, si es posible, siga la introducción del libro al algoritmo de CLR junto con él.

Bueno, felicitaciones a ti! ahora conoce los entresijos de todas las estructuras de datos y algoritmos principales y puede implementarlos en su lenguaje de programación favorito.

Así que ahora practica el tiempo …

Aquí hay algunos enlaces …

Topcoder : Entrega más rápido a través de crowdsourcing

CodeChef : concurso de programación, concurso de programación, programación informática en línea

while (! isMaster ())

{

práctica;

competir;

aprender;

}

diviértete 🙂

1: Puede consultar la versión sin conexión de CLRS para Estructura de datos y Algoritmos.

2: NPTEL vodeos .. http://nptel.ac.in/

3: Inscríbase para clases en línea / clases fuera de línea en Learnbay

El mejor instituto de capacitación en Bangalore – Learnbay.in es el mejor instituto de capacitación en Bangalore que brinda capacitación para tecnologías en sistemas embebidos, Python, C / C ++ y estructuras y algoritmos de datos. ¡¡Enlístate ahora!!

La respuesta de Krishna Kumar a ¿Cuáles son los mejores institutos de capacitación en estructuras de datos, C ++ y C en Bangalore?

fue ayuda completa para mí …

Puede aprender estructuras de datos utilizando estos recursos en línea:

GeeksforGeeks | Un portal informático para geeks

http://www.ideserve.co.in/

Si desea hacer una programación competitiva, los siguientes recursos son los mejores:

HackerRank

HackerEarth: desafíos de programación y trabajos de desarrollador

Concurso de programación, concurso de programación, programación informática en línea

http://codeforces.com

Sí, por supuesto,

El IIT ofrece cursos muy útiles y extraordinarios para todos los estudiantes. Puede consultar en “nptel.com” los cursos de video de estructuras de datos,

-> Programación y estructuras de datos por NarayanaSwamy de IIT, Madras

-> Estructuras de datos y algoritmos de IIT, Kharagpur y también de IIT, Madras

Estos cursos son muy útiles para principiantes.

Aprendizaje de estructuras de datos y algoritmos de Ashish Kedia sobre la vida de un depurador

Hola, si quieres aprender la estructura de datos (DS). Solo tiene forma de aprender en línea porque hay muchos canales y torrentes disponibles para el tutorial hasta que su maestro quiera enseñarle gratis. Entonces, en YouTube hay un canal llamado “thenewboston” y también hay un canal del mismo tutor “thenewboston.com” que puede visitar en el sitio web o el canal. Hay muchas otras tecnologías para aprender si quieres. Y si crees que el estudio en línea no es posible o que no es bueno, entonces eso no es cierto. Porque te enseñan más de lo que tu maestro real puede hacer.

Los torrents también son la opción de obtener educación gratuita, también puede encontrarlos en la web.

Así que ve y busca otros sitios web y canales de YouTube para seguir el mismo. Espero que les sea útil. Gracias.

Hay muchos libros buenos disponibles, puede referirlos como Tannenbaum, Narishimha Karumanchi, etc. También puede consultar conferencias en video de NPTL hechas por los profesores de IIT que son muy útiles.

Lo más importante es practicar las preguntas para mejorar la estructura de datos. Desde donde lo leas solo ayuda si practicas en él.

feliz de ayudar.

En un curso de estructuras de datos universitarios.

Si no puede hacer eso, obtenga un libro de texto de estructuras de datos universitarios y trabaje en él.

Tenga en cuenta que necesita habilidades matemáticas significativas para comprender realmente las estructuras de datos,