Por lo general, sugiero dos formas: la primera es mejor (pero más desafiante) que la segunda (arrojó una tercera, que también es bastante común):
- La mejor manera de entender cómo funciona un algoritmo es mirar su prueba de corrección y estudiar el problema que usamos para resolverlo. Si no comprende el problema, el algoritmo generalmente no tendrá mucho sentido. Una prueba de corrección le dice exactamente por qué funciona el algoritmo y le proporciona las agallas teóricas del algoritmo. Hace que el algoritmo sea más fácil de entender una vez que te has convencido de la prueba matemática. Esa es fácilmente la forma más valiosa de comprender mejor un algoritmo. Dependiendo del algoritmo, esto puede ser un desafío, pero se lo agradecerá más adelante porque puede obtener una mejor intuición de por qué funcionan y cómo otros algoritmos pueden tomar algunas ideas clave de una que pueda estar viendo. Esto requiere cero programación para hacer generalmente.
- Prueba algunos ejemplos . Dibujarlo en papel con una entrada. Elija una entrada que haga que necesite realizar todo el algoritmo. Trabaja en ello paso a paso. Por ejemplo, si tiene un bucle principal, realice cada iteración del bucle principal.
- Sé que mencionas tu habilidad de programación, pero una cosa que es muy común entre los estudiantes es implementar el algoritmo en un lenguaje de programación. Algunos consideran que esto es valioso, ya que ensucia sus manos para comprender cómo traducir el algoritmo en código para su implementación.
Es común hacer (2) antes (1) para tener una idea de cómo funciona el algoritmo.
¡Espero que esto ayude!
- ¿Cómo funciona el algoritmo de Warnsdorff?
- ¿El uso de algoritmos en una clave de contraseña típica de 256 bits que siempre está cambiando pero que aún se muestra al usuario (como en un teléfono, por ejemplo) para crear código requeriría supercomputadoras más rápidas disponibles para superarlo?
- Dado un volumen que consiste en un número de ubicaciones dentro de un espacio tridimensional definido, y a cada una de estas ubicaciones se le asigna algún número, ¿hay alguna métrica obvia que se pueda aplicar que mida la complejidad de la distribución de las mediciones?
- ¿Cómo resolvemos el problema B, 'Can of Worms', del Chicago Invitational Programming Contest 2013?
- ¿Cuántas conjeturas necesitarías para determinar el número entre 1 y 100 en el peor de los casos usando una búsqueda lineal?