/awesome-algorithms

A curated list of awesome places to learn and/or practice algorithms.

Awesome Algorithms

A curated list of awesome places to learn and/or practice algorithms. Inspired by awesome-awesomeness and all the other awesome Awesome libraries.

Websites

Websites you should use to learn classic algorithms

Online Courses

Free and High Quality University Courses Online

Books

The most highly regarded books to learn algorithms

Github Libraries

Implementations of the most classic algorithms in a wide variety of programming languages

Online Judges

Online Judges to practice what you learned above

  • UVA - Hundreds of problems (from previous ACM-ICPC Regionals, World Finals and others).
  • SPOJ - More problems.
  • ACM-ICPC Live Archive - Hundreds of problems from previous ACM-ICPC Regionals and World Finals.
  • URI - Brazilian Online Judge. Not so much problems, but it's growing and it has online contests.
  • CodeChef - More problems and monthly online contests.
  • CodeMarshal - Real world contests online!
  • ProjectEuler - Mathematical problems that can be solved using algorithms (or just a pencil, depends on how much you already know).
  • TopCoder - Lots of problems and real world/money worthy problems in Graphic Design, Data Science and Development.
  • Infoarena - Romanian Online Judge. 1500+ algorithmic problems
  • AIZU ONLINE JUDGE - Japanese Online Judge.
  • PKU JudgeOnline - Chinese Online Judge.

Tools

Some tools that can help you in the learning of algorithms

  • flow-chart.js - A tool that let you create flowcharts that can simulate real programs.