¿Deberíamos memorizar algoritmos, o simplemente saber cómo implementarlos?

No debes memorizarlos, debes entenderlos . Debe saber por qué el algoritmo hace lo que hace.

Debería comprender las ideas fundamentales y la intuición detrás del algoritmo: cómo alguien podría tener la idea en primer lugar. Es decir, ¿por qué pensamos en el problema de esta manera? Luego, debe comprender cómo las ideas se hacen precisas y se desarrollan en el algoritmo, y ser capaz de explicar por qué se eligieron ciertas opciones de implementación sobre otras. * Si conoce estas cosas, no necesitará memorizar el algoritmo. Recordará las ideas necesarias para construirlo desde cero, y tendrá a su disposición la capacidad de moldearlo y modificarlo para abordar las variaciones del problema.

Ver relacionado: ¿Cómo puedo mejorar mi habilidad para resolver problemas algorítmicos?

* Ejemplo: ¿Por qué las implementaciones modernas del algoritmo de Dijkstra usan un montón? ¿Por qué no usar una matriz sin clasificar?

Como dijo Eugene Yarovoi, nunca los memorices, entiéndelos. Al comprenderlos, podría ver patrones o componentes de ese algoritmo y, si tiene esta imagen clara, puede usar estas herramientas para abordar otros problemas. Por ej. Si conoce el tipo de fusión, puede comprender fácilmente
1. Contar las inversiones en una matriz – GeeksforGeeks
2. Escribe un programa en C para calcular pow (x, n) – GeeksforGeeks [No es exactamente lo mismo pero te da intuición]

Espero que esta ayuda 🙂

Principalmente necesita saber lo suficiente para saber cuándo usar cuál.
Si realmente los comprende, a menudo puede reproducirlos cuando sea necesario, al menos para un conjunto limitado.
Obviamente, se pueden encontrar muchos algoritmos en Internet, por lo que necesita, por contexto, problema, poder buscar los correctos.
Por lo tanto, debe conocer el lenguaje, las palabras, que se utilizan para describir algoritmos.

Deberíamos saber que existen y luego podemos implementarlas donde las necesitemos.

Algunos exámenes piden probarlos por métodos específicos, es posible que sea necesario memorizarlos.

More Interesting

¿Cuál es la razón por la cual las compañías gigantes (por ejemplo, Google o Microsoft) hacen preguntas típicas como el árbol de búsqueda binario o el algoritmo tradicional o preguntas como la complejidad del algoritmo? ¿Cuál es el propósito? La mayoría de ellos no se usan en la vida real.

¿Cuáles son los mejores algoritmos para el análisis de sentimientos?

¿Qué algoritmo puedo usar para encontrar el camino más corto en un sistema de variante de tiempo?

¿Los comerciantes algorítmicos institucionales necesitan tener una sólida comprensión de la microestructura del mercado?

¿Hay algún tipo de estrategias para resolver problemas en estática?

¿Estoy perdiendo el tiempo implementando la estructura de datos elementales (Stacks, Queues y LinkedLists) como parte de la preparación para una entrevista de prácticas en Google?

¿Cuál es mejor, búsqueda binaria o búsqueda lineal?

¿Qué viene después de aprender la biblioteca de plantillas estándar, las estructuras de datos y los algoritmos en C ++?

¿Es difícil implementar un árbol de radix? Si es así, ¿por qué?

¿Hay algún recurso donde pueda practicar problemas de programación dinámica según sus tipos?

Si uso un algoritmo de cifrado no tan bueno que inventé dentro de uno real, ¿cuánto más seguros están juntos?

¿Qué algoritmo se utiliza en los puntos de calificación para las clasificaciones de cricket ICC?

¿Cuál es la solución eficiente para SPOJ CCROSSX?

¿Qué es una matriz en Java? ¿Y cuál es un ejemplo de su uso?

¿Qué es una estructura de datos dinámicos de pila?