Skip to content
A curated list of awesome places to learn and/or practice algorithms.
Branch: master
Clone or download
Pull request Compare This branch is 137 commits behind tayllan:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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 you should use to learn classic algorithms

Online Courses

Free and High Quality Courses Online


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.
  • Learneroo Algorithms Tutorials - Learn and practice algorithms by solving challenges online.
  • Infoarena - Romanian Online Judge. 1500+ algorithmic problems
  • AIZU ONLINE JUDGE - Japanese Online Judge.
  • PKU JudgeOnline - Chinese Online Judge.
  • Rosalind - A platform for learning bioinformatics and programming through problem solving.
  • LavidaOnlineJudge - Korean Online Judge(Half English). 1300+ problems.
  • LeetCode - Learn algorithms and prepare for interviews.
  • HackerRank - Featured algorithm and functional programming online judges
  • Codeforces - The only programming contests Web 2.0 platform


Some tools that can help you in the learning of algorithms

  • flow-chart.js - A tool that allows you to create flowcharts that can simulate real algorithms.
You can’t perform that action at this time.