---
visibility: public
---

# Algorithms

**repo:** [tayllan/awesome-algorithms](https://github.com/tayllan/awesome-algorithms)  
**category:** [[theory|Theory]]

---

# Awesome Algorithms

A curated list of awesome places to learn and/or practice algorithms.
Inspired by [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) and all the other awesome Awesome libraries.

If you want to contribute, please read the [contribution guidelines](https://github.com/tayllan/awesome-algorithms/blob/master/CONTRIBUTING.md).

- [Awesome Algorithms](#[awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome)-algorithms)
    - [Beginner-Friendly](#beginner-friendly)
    - [Programming Contest](#programming-contest)
    - [Theory & Fundamentals](#theory--fundamentals)
    - [Production System](#production-system)
    - [Database](#database)
    - [Special Topic](#special-topic)
    - [Cheat Sheet](#cheat-sheet)
    - [Related [Awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) List](#related-awesome-list)

## Beginner-Friendly

### YouTube Playlist
* [Khan Academy Algorithms](https://www.khanacademy.org/computing/computer-science/algorithms) - Algorithm course ministered by Tomas Cormen and Devin Balkcom.
* FreeCodeCamp. Algorithms and Data Structures: [5 hours](https://www.youtube.com/watch?v=8hly31xKli0), [49 hours](https://youtu.be/xwI5OBEnsZU?si=W3CduIEmUehJERHk) - Complete beginner friendly Algorithms and Data Structures Tutorial with mindblowing animation.

### Book
* [Real World Algorithms: A Beginner's Guide](https://mitpress.mit.edu/books/real-world-algorithms) - An introduction to algorithms for readers with no background in advanced mathematics or computer science.
* [Levitin. Introduction to Algorithms](https://www.amazon.com/Introduction-Design-Analysis-Algorithms-3rd/dp/0132316811) - A very accessible illustration of algorithms in the forms of puzzles. No programming experience is required!

### Interactive Learning & Visualization
* [VisuAlgo](http://visualgo.net) - Visualising data structures and algorithms through animation.
* [See Algorithms](https://see-algorithms.com/) – Visualizes algorithms and lets users create and share custom graphs and binary trees.

## Programming Contest

### Website
* [CP-Algorithms](https://cp-algorithms.com/) - Algorithms and data structures are especially popular in the field of [competitive programming](/@harrisonqian/awesome/wiki/theory/competitive-programming).

### Book
- [Steven Halim. [Competitive Programming](/@harrisonqian/awesome/wiki/theory/competitive-programming) book](https://cpbook.net/)

### Competition Website
* [HackerEarth](https://www.hackerearth.com/) - Accessible [tutorials](/@harrisonqian/awesome/wiki/computer-science/tutorials) for beginners.
* [Code Chef](https://www.codechef.com/contests) - Accessible problems for beginners.
* [Codeforces](http://codeforces.com/) - Challenging problems.
* [TopCoder](https://www.topcoder.com/) - Sponsored by tech companies.
* [Leet Code](https://leetcode.com/) - Interviews problems.
* [UVA](https://uva.onlinejudge.org/) - Archives previous ACM-ICPC Regionals and World Finals.
* [ProjectEuler](https://projecteuler.net/) - [Math](/@harrisonqian/awesome/wiki/theory/math) oriented problems.

### Blog
* [An [awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) list for [competitive programming](/@harrisonqian/awesome/wiki/theory/competitive-programming)!](https://codeforces.com/blog/entry/23054) - [Awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) blog for all the resources and list of books and algorithms.
* [Algorithms Weekly](https://petr-mitrichev.blogspot.com/) - A good blog by Petr Mitrichev, mainly in [Java](/@harrisonqian/awesome/wiki/programming-languages/java).
* [Algorithm [Tutorials](/@harrisonqian/awesome/wiki/computer-science/tutorials) by Tanuj Khattar](https://tanujkhattar.wordpress.com/) - Excellent blog by Tanuj Khattar. Covers [tutorials](/@harrisonqian/awesome/wiki/computer-science/tutorials) on some interesting data structures along with example problems to solve.

## Theory & Fundamentals

### Book
* [Introduction to Algorithms](https://mitpress.mit.edu/9780262046305/introduction-to-algorithms/) - Standard classic for anyone.
* [The Art of Computer Programming](http://www-cs-faculty.stanford.edu/~uno/taocp.html) - Knuth's classic.
* [The Algorithm Design Manual](http://www.algorist.com/) - Easy to read and full of real-world examples.

### Online Course
* [MIT - 6-006](https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/video_galleries/lecture-videos/) - Well explained algorithms.
* [MIT - 6-046j](https://ocw.mit.edu/courses/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video_galleries/video-lectures/) - Similar to the previous one, but with different algorithms.
* [MIT - 6-00sc](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/index.htm) - An easy and well-explained introduction to algorithms.

### YouTube Playlist
* [Tim Roughgarden. Algorithms Illuminated](https://www.algorithmsilluminated.org/) - Tim Roughgarden, a pioneer of computer science, offers a companion to his book, with lecture videos and slides.

## Production System

* [Performance Engineering of Software Systems. MIT OCW](https://ocw.mit.edu/courses/6-172-performance-engineering-of-software-systems-fall-2018/) - A hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, and caching optimizations.
* [Cloud and Distributed Computing: Algorithms and Systems by Misra & Patel](https://www.wileyindia.com/cloud-and-distributed-computing-algorithms-and-systems.html) - It teaches the internals of cloud computing and how concepts of distributed systems work inside clouds.

## Database

* [PostgreSQL Query Optimization: The Ultimate Guide to Building Efficient Queries](https://www.oreilly.com/library/view/postgresql-query-optimization/9781484268858/) - It introduces different classes of queries and optimization techniques suitable to each, such as the use of indexes and specific join algorithms.

## Special Topic

* [Fabulous Adventures in Data Structures and Algorithms](https://www.manning.com/books/fabulous-adventures-in-data-structures-and-algorithms) - It teaches lesser-known algorithmic approaches like immutable data structures—[stacks](/@harrisonqian/awesome/wiki/miscellaneous/stacks), queues, deques, and unusual constructions like Hughes lists.

## Cheat Sheet

* [Tech Interview Cheat Sheet](https://github.com/TSiege/Tech-Interview-Cheat-Sheet)
* [Princeton DS Cheat Sheet](https://algs4.cs.princeton.edu/cheatsheet/)
* [CLRS in short](https://sinon.org/algorithms//#data-structures)
* [Rice university DS course in short](https://www.clear.rice.edu/comp160/data1.html)
* [Algo Deck](https://github.com/teivah/algodeck/) - An open-source collection of +200 algorithmic cards.

## Related Awesome List

- [Theoretical Computer Science](https://github.com/mostafatouny/awesome-theoretical-computer-science/) - The interdisciplinary of Mathematics and Computer Science, distinguished by its emphasis on mathematical technique and rigour.
- [Math](https://github.com/rossant/awesome-[math](/@harrisonqian/awesome/wiki/theory/math)#readme) - Freely available lecture notes on mathematics.

## License

[![Creative Commons License](http://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/)

This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).