Practica, practica y practica …
Si quieres aprender algoritmos solo por codificación de sake, entonces estás en el camino equivocado. Aprende a resolver problemas. Si desea aprender algoritmos y codificación al mismo tiempo, le sugiero que siga:
- Seleccione un lenguaje de programación de su elección, como Java, Python, C, etc.
- Aprende el lenguaje de programación que has elegido. Mejora con los fundamentos del lenguaje.
- Seleccione un buen libro sobre algoritmos, sugiero Introducción a los algoritmos de Thomas H. Coremen. Aprenda un algoritmo usando lápiz y papel, rastree cada paso del algoritmo.
- Después de comprender el algoritmo, comience a codificarlo en el idioma que haya elegido. Se sentirá mucho más fácil codificar de esta manera.
- Después de ejecutar su código con éxito, NO se conforme con el resultado. Busque las optimizaciones en su código.
- Practica lo que has aprendido una y otra vez. Le sugiero que cree una cuenta en HackerRank o HackerEarth y busque los problemas a resolver.
Espero que la respuesta te ayude.
- ¿Hay algún patrón abstracto para medir qué tan bueno eres en algoritmos?
- ¿Por qué Java utiliza una implementación mediocre de hashCode para cadenas?
- ¿Por qué la clasificación rápida se considera una clasificación inestable?
- ¿Existe una estructura de datos ordenada que se pueda insertar en O (logn) y buscar en O (1)?
- En el algoritmo de coincidencia del patrón de fuerza bruta cuando todos los caracteres en el patrón son únicos, entonces la fuerza bruta se puede implementar en la complejidad Big-oh (n) donde n es la longitud de la cadena (referencia: introducción a los algoritmos). ¿Alguien puede ayudarme con el algoritmo? Gracias por adelantado