¿Cómo debo usar el libro Introducción a los algoritmos de Cormen de manera efectiva? ¿Es mejor elegir un tema que haya encontrado en algún lugar de la programación competitiva y leer un algoritmo relacionado con eso o revisarlo de principio a fin?

Bueno, deberías leer este libro de principio a fin (de lo básico a lo máster).

Aquí está mi sugerencia sobre cómo leer este libro.

Lectura y comprensión de CLRS:

1. Use video conferencias para comprender el concepto y lea el capítulo del libro.
El mejor sitio para videos de conferencias CLRS:
Lección 1: Administración, Introducción, Análisis de Algoritmos, Ordenación por Inserción, Mergesort

Conferencias de video | Introducción a los algoritmos (SMA 5503) | Ingeniería Eléctrica e Informática | MIT OpenCourseWare

Peteris Krumins ha publicado una serie de publicaciones de blog que cubren las conferencias. También puede encontrar sus notas de clase para cada video. Comience con este: http://www.catonmat.net/blog/mit….

¿Qué pasa si no estás entendiendo las ecuaciones y pruebas matemáticas, funciones dadas en el libro?

1. Vea videos sobre matemáticas discretas por la Universidad Arsdigita
Curso 02: Matemáticas discretas (Universidad de Arsdigita): Descarga y transmisión gratuitas: Archivo de Internet
Paralelamente, lea Matemáticas discretas y sus aplicaciones por Rosen
Matemática discreta y sus aplicaciones Séptima edición: descarga y transmisión gratuitas: archivo de Internet
Resuelve los ejercicios dados en el libro si resuelves todos los ejercicios por tu cuenta 😉. Estoy seguro de que te convertirás en maestro.

2. Intente los ejercicios después de cada capítulo de CLRS. Resista la tentación de omitir los ejercicios o mire las soluciones en línea de inmediato.

3. Practique la resolución de problemas algorítmicos de sitios como TopCoder, SPOJ, etc. Por ejemplo, después de leer el capítulo sobre Programación dinámica, puede filtrar los problemas que pertenecen a esta categoría y resolverlos.

4. Si encuentra que el contenido en CLRS es muy teórico a medida que avanza (y lo hará), utilice los Tutoriales de algoritmos de Topcoder (http://community.topcoder.com/tc…) para comprenderlos primero. Los contenidos aquí son más accesibles.

5. Para su referencia, aquí está el enlace de la solución a la página CLRS en compute.dtu.dk

Así es como estoy leyendo el Libro actualmente. Espero que esto funcione para ti también ;).

¡¡Gracias!!

De hecho, sugeriría leer este libro más de una vez (lo he leído aproximadamente 2.5 veces en el transcurso de mi programa de pregrado de 4 años).

En su primera lectura, especialmente si es nuevo en Algoritmos y pruebas matemáticas, está bien escanear / saltear las pruebas e intentar comprender las ideas y el pseudocódigo de la mayoría de los algoritmos del libro. También sería una buena idea resolver problemas en Codeforces o UVa Online Judge relacionados con cada capítulo antes de continuar.

Ignore los capítulos 17–20 (Análisis Amortizado y algunas estructuras de datos avanzadas), 27 (algos multiproceso), 35 (algoritmos de aproximación) si se está centrando en la programación competitiva. Sin embargo, los apéndices son realmente útiles (de hecho, aprendí acerca de la probabilidad del apéndice de este libro, lo creas o no)

Esto es suficiente para al menos exponerlo a algoritmos y temas que quizás no haya conocido. Si estás en un programa de CS o tomando clases de Matemática discreta, muchas de las brechas restantes comenzarán a llenarse.

En su segunda lectura, recomendaría hacer intentos honestos de seguir y completar las pruebas. No son tan * difíciles *, pero requieren que usted realmente comprenda y trabaje a través de las pruebas. Trate de “predecir” las pruebas, por ejemplo, antes de leer una prueba, trate de resolverlo usted mismo y vuelva al libro cuando se atasque o termine. Esto hará maravillas en su razonamiento matemático y comprensión de CS y algoritmos.

Un ejemplo para mí fue en el capítulo String Matching, realmente quería entender por qué funciona el algoritmo KMP. Al probar y derivar cómo funciona la “función de falla”, se llega al núcleo del algoritmo.

En este punto, debería poder volver a derivar la mayoría de los algoritmos a partir de los primeros principios (con el tiempo suficiente), incluso si no los ha memorizado. (Aunque, no intente hacerlo en un entorno de programación competitivo, ya que tiene limitaciones de tiempo allí).

Finalmente, escoja temas que realmente le interesen y profundice. Para mí, esto vino naturalmente cuando me encontré con problemas en un entorno de programación competitivo que no pude resolver debido a la falta de conocimiento o profundidad. Me encantaron los problemas de flujo máximo, por ejemplo, así que me sumergí más profundamente allí. También investigué un poco sobre algoritmos de aproximación, por lo que fue útil volver al Capítulo 35.

En este punto, CLRS se convierte en un libro de referencia. Salta a partes cuando las necesites.

¿Lees un diccionario de AZ para mejorar tu vocabulario?
No, tu no.

CLRS es exactamente así, un diccionario de algoritmos y estructuras de datos.
La mejor manera de usar CLRS es como referencia .
No es necesario leerlo de principio a fin. Mientras realiza una programación competitiva si se encuentra con un nuevo concepto o no tiene idea de cómo implementar una estructura de datos o algoritmo en particular, entonces y solo entonces debe consultar CLRS.
CLRS es exquisitamente detallado y puede perder interés lo suficientemente pronto si piensa leerlo de principio a fin.

Introducción al algoritmo (por Cormen) es el libro madre de todos los libros basados ​​en algoritmos. Cormen y varios investigadores han conectado varios campos y hacen un libro con una sola mano. Este libro es más que suficiente para el algoritmo.

  1. Si es nuevo en algoritmos, comience con el Capítulo 1, es decir, El rol del algoritmo en la informática. Este capítulo cubre un concepto muy básico sobre definición, estructura de datos y sobre paralelismo y otro concepto de eficiencia del algoritmo.
  2. Luego, debe seguir el Capítulo 2, es decir, Comenzar, que tienen un concepto básico sobre la ordenación por inserción, la ordenación por fusión, el Análisis del algoritmo, el Diseño del algoritmo junto con alguna parte de la recursión que es muy importante para todo el algoritmo.
  3. Si conoce algunas matemáticas, siga el Capítulo 3, es decir, Crecimiento de funciones. De lo contrario, omita el tema. No es necesario que YouTube proporcione varios videos al respecto.
  4. Entonces deberías leer el Capítulo 4, es decir, Dividir y conquistar este capítulo es muy muy importante en todo el libro. En mi sugerencia, haga que este capítulo se lea de inmediato.
  5. Ahora vaya al Capítulo 6, puede omitir el capítulo 5, no es muy importante, así que continúe con el capítulo 6, es decir, la ordenación del montón. Tienes que seguir todos los algoritmos de clasificación y búsqueda.
  6. Luego, una vez que haya terminado arriba, siga la estructura de datos elementales. (Pila, Cola, Lista enlazada).
  7. Después de eso, una vez que haya leído todo lo anterior, debe leer el Capítulo 11 y el Capítulo 12 solo hasta ahora.
  8. Después de eso, necesitará una guía para leer o hacer que un anciano interfiera.
  9. Una cosa más es asegurarse de que el Algoritmo Dinámico debe leerse porque muchas veces el mejor reclutador puede exigir algo diferente de usted para que se destaque siguiendo la Teoría del Algoritmo Dinámico y su implementación. Puede encontrar preguntas para eso en HackerEarth y en muchos concursos de codificación.

También puede seguir algunos de enlace también.

NPTEL – Computer Sc: estructuras de datos y algoritmos

Otras respuestas cubren cómo debe seguir el libro. Básicamente tienes 2 opciones como mencionaste:

1. Haz todo el libro.
2. Haz ciertos temas.

Realmente depende de usted, pero mi preferido es el segundo porque algunos temas simplemente no son lo suficientemente atractivos / no son necesarios en un momento determinado. Cómo lo hice: hice los primeros capítulos y ciertos capítulos esenciales (algos codiciosos, algos de camino más corto, programación dinámica, etc.) y luego solo hice algunos capítulos cuando sentí o me encontré con un problema.

La forma en que lo hice fue usar las video conferencias del tema en el que me estaba enfocando desde el curso MIT Video Lectures | Introducción a los algoritmos (SMA 5503) | Ingeniería Eléctrica e Informática | MIT OpenCourseWare (o puede encontrar las conferencias CS 161 de Stanford en línea) y luego haciendo ejemplos relevantes del libro / red.

* esto supone que todavía no está en la universidad, ya que en la universidad si está haciendo CS cubrirá casi todos los temas importantes en una clase de diseño de algoritmos.

En mi opinión, este libro debe tratarse de la misma manera que tratamos un diccionario.

Compré este libro durante el segundo semestre de mi curso de BE y tuve el mismo problema. Empecé a leerlo desde la primera página, leí las primeras páginas, me aburrí, me di por vencido hasta el sexto semestre.

Después de varios intentos fallidos, aquí estoy, ¡disfrutando de mis vacaciones leyendo este libro!

  • Comprende que los capítulos iniciales de dos o tres explican los conceptos básicos, no te saltes nada hasta el Teorema del Maestro.
  • Elija un tema que desee aprender, por ejemplo, ordenando, tal como se usa un diccionario para buscar el significado de una palabra. Hay muchos algoritmos y sus variantes, compárelos, impleméntelos.
  • Use Google para animaciones y diferentes puntos de vista.

Ordenar fusión

Esta técnica es más útil si ya tiene un ligero conocimiento de este tema.

Esto me ayudó, ¡espero que esto también te ayude!

Honestamente es la Biblia para los estudiantes de informática.

La forma en que lo use depende de usted, pero de cualquier manera que deba encontrar, debe hacerlo a cualquier costo. Y si haces eso, serías un estudiante completamente diferente.

Los primeros cuatro capítulos serían un poco difíciles y si lo revisas, creo que estarías atascado en el CLRS (Mucha gente se refiere a él como la Introducción a los Algoritmos de CORMEN, pero me gusta llamarlo CLRS porque Charles E. Leiserson , Ronald L. Rivest y Clifford Stein también contribuyeron.) Llegando al punto principal, el libro es lo suficientemente motivador. El tamaño es aterrador, pero debe comenzar a leerlo. A veces, debe leer el mismo tema varias veces en caso de que lo necesite.

También revise los ejercicios y como referencia, también puede ver la solución en pdf.

Libro CLRS:

https://www.google.co.in/url?sa=…

Solución:

http://yinyanghu.github.io/files

CLRS se considera una ‘biblia’ para algos y estructuras de datos. Le sugiero que consulte un libro de matemáticas discretas en paralelo, ya que Cormen usa las matemáticas ampliamente para las pruebas.

Por lo tanto, puede leer una parte en particular, decir Árboles binarios y, después de leer, ver tutoriales en la web para eliminar cualquier confusión o para una mejor comprensión. Luego impleméntelo escribiendo el código y viendo si funciona. En este proceso, sea lo más creativo posible y hágase preguntas como cómo invierto el árbol, cómo imprimir nodos en cada nivel, etc.: – Después de eso, también puede intentar resolver problemas basados ​​en él en sitios como codechef y hackerearth.

El objetivo es buscar la calidad y no la cantidad de material cubierto. Incluso si vas despacio, no hay absolutamente ningún problema, pero asegúrate de que todo lo que aprendas sea claro.

  1. Abrir página de contenido.
  2. Lea el capítulo sobre análisis asintótico, análisis de complejidad y haga los ejercicios.
  3. Abrir página de contenido nuevamente.
  4. Elige un tema. Lea sobre esto ** en línea **. Resolver problemas relacionados con él en jueces en línea.
  5. Cuando esté lo suficientemente cómodo con el tema, abra el ejercicio CRLS relacionado con el tema. Intenta esos problemas.
  6. Consulte el manual de la solución después de intentarlo durante unas horas. Quizás un día completo.
  7. NUNCA lea sobre el tema seleccionado de CRLS.
  8. Resuelva problemas más difíciles sobre el tema en jueces en línea.
  9. Elige el siguiente tema. (8 y 9 no necesitan seguirse en ese orden)

Solo tienes dos opciones

  1. Lea el libro, comprenda los algoritmos, apruebe los exámenes y olvide todo.
  2. Elija cualquiera de los temas al azar, léalo y solo vaya al topcoder o cualquier otro sitio web de codificación, implemente los problemas máximos de ese tema y conviértase en el maestro de los algoritmos.

    Entonces la elección es tuya

Leer y comprender todo el libro puede ser un poco difícil, pero pocos conceptos se explican muy bien en el libro y estos son los que puede usar este libro cualquier día.

Las partes mencionadas a continuación están muy bien explicadas y se utilizan con frecuencia en la programación, también comprenderá muy bien la complejidad del tiempo.

Clasificación y órden de las estadísticas

Estructuras de datos (principalmente hasta BST)

Diseño avanzado y técnicas de análisis (DP y codicioso principalmente)

Algoritmos Gráficos

String Matching

Todos estos temas también se usan con bastante frecuencia en la programación competitiva, así que creo que para comprender estos temas en detalle, puede usar el libro de manera muy adecuada.

Antes de comenzar la programación competitiva, al menos lea los algos de clasificación para que tenga la idea del análisis de la complejidad del tiempo y también estos son algos muy básicos. Después de eso, puede seguir la estrategia de referir el tema cuando lo encuentre.

También le doy un consejo adicional de que para aprender programación competitiva, los videos de YouTube son un muy buen recurso. Me refiero a los videos de Tushar Roy principalmente y, a veces, a la escuela saurabh.

Traté de encontrar una manera fácil hace varios años, pero fallé. Mi experiencia es: agarrar un bolígrafo, un cuaderno. Una taza de café también es útil si lo desea. Pase muchas horas de tiempo de calidad para leer y resolver los problemas usted mismo. Encuentre maneras de ponerse a prueba para asegurarse de que realmente está aprendiendo los conceptos y habilidades. Sigue las reglas de la práctica deliberada. [1]

Notas al pie

[1] Práctica (método de aprendizaje) – Wikipedia

Primero lea los primeros capítulos sobre análisis algorítmico. Luego revise los temas uno por uno y resuelva las preguntas basadas en ellos. Sugeriría la puerta de enlace del programa de capacitación de USACO ya que está estructurada exactamente para esto.

Había leído alrededor del 80% del libro y comencé a programar mucho después de eso. Fue divertido y luego me ayudó a entender algunas cosas más rápido, pero no es la forma más efectiva.

Sugiero omitir algunas secciones: la respuesta de Brian Bi a ¿En qué partes de CLRS no debería centrarse un programador competitivo? Realmente no entiendo la importancia de saber cómo calcular la complejidad de un algoritmo o demostrar la exactitud de un algoritmo. ¿Debo omitir esta parte?

Aparte de eso, lo leería de principio a fin, pero también puede usarlo como referencia al mismo tiempo. Cada día, puede resolver algunos problemas y leer un poco del libro.

¿Por qué completarlo es un objetivo? Si lo miras de esa manera, nunca podrás terminarlo.

Lo que puedo decirte es que cada página está llena de conocimiento, por lo que en cualquier página que termines, aprenderás algo que no sabías anteriormente. Si conocía esos conceptos de antemano, le dará una nueva perspectiva y aclarará cosas que podrían no estar claras.

Simplemente abra cualquier página y lea.

Gracias por a2a anon. Iré con Jaskaran. Solo úselo como referencia, si su propósito es usar algoritmos. Si desea seguir una carrera en el desarrollo de algoritmos, puede leer página a página y trabajar con pruebas.

Fundamental del algoritmo informático solía ser un dolor para mí.

Todavía recuerdo cómo pasé mi examen y sí, todo gracias a Youtube.

Entonces, donde tenga dudas, tome una ayuda de videos tutoriales en YouTube, ya que hay muchos buenos tutoriales.

No leas todo el libro, solo lee lo que es relevante para ti.

More Interesting

¿Hay algún buen sitio para aprender algoritmos / conceptos de programación todos los días (similar a la pregunta SAT del día)?

¿Se aplica la ley de Moore a los algoritmos informáticos?

Si hipotéticamente encontré un algoritmo que genera rendimientos comerciales al 100% anualmente, ¿qué debo hacer con él?

¿Qué representación gráfica es mejor para la programación competitiva en C ++: lista de adyacencia o matriz de adyacencia?

¿La recursividad es más rápida que los bucles en MATLAB?

¿Qué es lo más profundo que aprendiste al leer SICP?

¿En qué situación no debemos usar la tabla Hash?

¿Aprender las estructuras de datos usando Python en lugar de C afectará mi comprensión de las estructuras de datos?

¿Un montón necesita usar una cola prioritaria?

Cómo encontrar las rutas que cubren todos los vértices dados (también se conocen el vértice inicial y final) en un gráfico cuyos bordes tienen peso y dirección

¿Hay alguien que pueda responder esta pregunta?

¿Qué es mejor si necesito elegir un camino para mi carrera, algoritmos y estructuras de datos, o tecnologías de big data, en las que estoy trabajando actualmente?

¿Qué algoritmo de ML debo usar para una aplicación de selección de automóviles basada en Tinder?

¿Cuál es el mejor curso de algoritmo para comenzar a resolver problemas y convertirse en un ingeniero de software? Encontré tres cursos. ¿Me pueden ayudar a elegir uno?

¿Cuál es el problema conmigo si puedo decir cómo funciona el algoritmo pero no puedo escribir el programa para el mismo? ¿Cómo puedo deshacerme de él? ¿Por favor ayuda?