Ho programmato per diversi anni. E ho scoperto che è sempre difficile padroneggiare un algoritmo (che cosa significa "master" qui è capire come funziona l'algoritmo e potrebbe implementarlo indipendentemente in qualche linguaggio di programmazione).
Potrei implementare alcuni semplici algoritmi (come bubble sort, ricerca binaria, algoritmi di attraversamento grafico di base come DFS, BFS, problemi di programmazione dinamica di base come). Ma è molto difficile per me padroneggiare alcuni algoritmi avanzati come KMP, max-flow.
Potrei capire l'idea di base dietro gli algoritmi. Ma di solito sono bloccato all'implementazione e dimentico l'algoritmo da un po '.
Quindi le mie domande sono:
- qual è una procedura ragionevole per imparare / padroneggiare un nuovo algoritmo?
- Ho bisogno di esercitarmi ancora e ancora su piattaforme come USACO, topcoder per dominarlo? O c'è un modo migliore?