Además de la programación competitiva, ¿cómo aprender algoritmos?

  1. Tome cursos en línea en Coursera o vea videos en MIT OCW o en otro lugar. Comprende la intuición detrás de esto. Codifícalo.
  2. Juega con simulaciones interactivas en línea o toma un pequeño ejemplo y simúlalo a mano. Te aconsejo que hagas esto último porque te hace pensar en cada paso de la simulación.
  3. Cree un proyecto que requiera que aplique los conocimientos que ha aprendido. Por ejemplo, ahora estoy tratando de construir un compilador que involucre muchas estructuras de datos como la Tabla de símbolos (ADT), el Árbol de sintaxis abstracta, la Pila, la Cola, los gráficos de flujo de datos en la optimización, etc. Es muy complejo. Tratar con la traducción dirigida por AST y sintaxis también enseña la recursividad si no la ha entendido correctamente.

    Elige algo más simple al principio. Si no sabe qué hacer, simplemente impleméntelos usted mismo.

  4. Estudie algunos textos como Introducción a los algoritmos ** dependiendo de cuánto le gusten las matemáticas. Está bien si no le gusta la parte matemática: pruebas de análisis y corrección (solo al principio). Pero a medida que avanza y se sumerge más profundo, debe conocerlos.

Recursos:

  1. ¿Cuál es el mejor recurso para estructuras de datos y algoritmos?

** Alguien por favor sugiera textos más simples.

Cada programa que escriba tendrá un algoritmo, pequeño o grande, directo o indirecto.

Todo lo que tienes que hacer es programar.

Cuanta más programación haga, más algoritmos tendrá aquí: Lista de algoritmos: Wikipedia, usted escribirá.

Es como preguntar cómo puedo ser el mejor cocinero sin dejar que nadie pruebe mi comida.

CP es una de las mejores formas en las que puede evaluar lo que aprendió o mejorar lo que aprendió. La mayoría de las veces, aprendo de amigos, personas mayores o tutoriales de topcoder o de youtube.