Un consejo que debería ayudar es pensar en los algoritmos como pruebas matemáticas, en lugar de una secuencia de pasos dados a una computadora.
Pensar en los algoritmos como pruebas matemáticas le ayuda a comprender por qué funcionan los algoritmos. Cuando piensa en los algoritmos como una secuencia de pasos, se ve obligado a memorizar los pasos y seguramente olvidará estos pasos. Pero cuando piensa en los algoritmos como pruebas matemáticas, obtiene una comprensión más profunda del algoritmo.
Además, cada vez que te encuentres con un nuevo algoritmo, no te digas a ti mismo: “¡Oye! Este es un enfoque genial. Ahora déjame aprender eso”. En lugar de eso, dite a ti mismo: “¡Oye! Esto es genial. Ahora, ¿cómo demuestro que es correcto?” Tener esta visión orientada a la prueba hacia los algoritmos es muy importante si desea obtener una comprensión intuitiva de los algoritmos. De hecho, diré que nunca debe intentar memorizar un algoritmo, sino que siempre debe probar (o refutar) su corrección (u otras propiedades del algoritmo).
- ¿Cuáles son algunos cuadriláteros que se usan en la vida real?
- ¿Cuál es la mejor manera de procesar consultas de accesibilidad en un DAG con restricciones?
- ¿Aprender las estructuras de datos y las matemáticas será una "reinvención de la rueda"?
- ¿Pueden algunos explicarme la lógica detrás del siguiente problema El oso hambriento?
- ¿Qué es un algoritmo eficiente para encontrar un circuito euleriano en un gráfico no dirigido?
Además, cada vez que quiera crear un nuevo algoritmo, no se diga “¿Qué secuencia de pasos le daré a una computadora para resolver este problema?” Más bien, pregúntese “¿Qué propiedad matemática puedo probar y explotar para resolver este problema?” Siempre esté atento a las propiedades matemáticas, como las invariantes, cuando piense en algoritmos.
Pensar en los algoritmos como pruebas matemáticas es la clave para comprender los algoritmos IMO. No sorprende que muchos libros de texto de algoritmos contengan muchas pruebas matemáticas.
Otro punto que es algo útil es darse cuenta de que muchos algoritmos combinatorios pueden considerarse como pruebas inductivas. Comprender la inducción matemática es muy esencial para comprender los algoritmos. No se puede separar la inducción de los algoritmos, ya que están estrechamente relacionados entre sí.
Recomiendo leer este documento de Udi Manber, y este libro también del mismo autor. El documento y el libro muestran cómo puede pensar en muchos algoritmos como pruebas matemáticas (pruebas inductivas en particular). El libro también explica lo que he dicho aquí, por lo que debería ser una buena lectura.
Si tiene algo de tiempo libre, le sugiero que lea los primeros tres capítulos del libro de Arthur Engel Estrategias para resolver problemas. Es un libro sobre estrategias de resolución de problemas matemáticos, pero algunas de estas ideas también se transfieren al mundo de los algoritmos. Ideas como la invariancia y el principio extremo surgen mucho al pensar en algoritmos.
¡Buena suerte en tu estudio!