In what order should I learn Algorithms as a beginner competitive programmer?

Quora Feeds

Active Member
Vladimir Novakovski


This is the general path that I took:

  • The basics, from a book like The Practice of Programming
  • Simple dynamic programming and greedy algorithms
  • Basic graph concepts, breadth-first and depth-first search
  • Basic data structures
  • Dijkstra’s algorithm
  • Minimum spanning trees
  • More advanced data structures
  • Advanced dynamic programming
  • Advanced graph theory, e.g. Floyd-Warshall
  • Computational geometry
  • Network flow

At this point, you should be able to make a training camp or an ACM team. Beyond that, I would recommend splitting time between practicing more for the execution (programming speed, few bugs, etc.) and learning more advanced topics (graduate level CS) that don’t come up as much in contests but help you expand your thinking and creativity.



See Questions On Quora

Continue reading...
 
Similar threads

Similar threads

Top