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.

If you want to contribute, please read the contribution guidelines.

Websites

Websites you should use to learn classic algorithms

Online Courses

Free and High Quality Courses Online

Books

The most highly regarded books to learn algorithms

Algorithms and Data structures

Algorithm Analysis

Randomized Algorithms

Cheat Sheets

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

Blogs

Awesome list of blogs, mainly for competitive programming but you can refer to these when learning a new topic/algorithm

Tools

Some tools that can help you in the learning of algorithms

License

And for the sake of copyleft, here’s our license:

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.