awesome-algorithms

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

25,094 stars Unknown Markdown Skills API Spec
AI Prompts & Specs

Repository: tayllan/awesome-algorithms


Stars: 25012

README.md

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.

- Awesome Algorithms
- Beginner-Friendly
- Programming Contest
- Theory & Fundamentals
- Production System
- Database
- Special Topic
- Cheat Sheet
- Related Awesome List

Beginner-Friendly

YouTube Playlist


* Khan Academy Algorithms - Algorithm course ministered by Tomas Cormen and Devin Balkcom.
* FreeCodeCamp. Algorithms and Data Structures: 5 hours, 49 hours - Complete beginner friendly Algorithms and Data Structures Tutorial with mindblowing animation.

Book


* Real World Algorithms: A Beginner's Guide - An introduction to algorithms for readers with no background in advanced mathematics or computer science.
* Levitin. Introduction to Algorithms - A very accessible illustration of algorithms in the forms of puzzles. No programming experience is required!

Interactive Learning & Visualization


* VisuAlgo - Visualising data structures and algorithms through animation.
* See Algorithms – Visualizes algorithms and lets users create and share custom graphs and binary trees.

Programming Contest

Website


* CP-Algorithms - Algorithms and data structures are especially popular in the field of competitive programming.

Book


- Steven Halim. Competitive Programming book

Competition Website


* HackerEarth - Accessible tutorials for beginners.
* Code Chef - Accessible problems for beginners.
* Codeforces - Challenging problems.
* TopCoder - Sponsored by tech companies.
* Leet Code - Interviews problems.
* UVA - Archives previous ACM-ICPC Regionals and World Finals.
* ProjectEuler - Math oriented problems.

Blog


* An awesome list for competitive programming! - Awesome blog for all the resources and list of books and algorithms.
* Algorithms Weekly - A good blog by Petr Mitrichev, mainly in Java.
* Algorithm Tutorials by Tanuj Khattar - Excellent blog by Tanuj Khattar. Covers tutorials on some interesting data structures along with example problems to solve.

Theory & Fundamentals

Book


* Introduction to Algorithms - Standard classic for anyone.
* The Art of Computer Programming - Knuth's classic.
* The Algorithm Design Manual - Easy to read and full of real-world examples.

Online Course


* MIT - 6-006 - Well explained algorithms.
* MIT - 6-046j - Similar to the previous one, but with different algorithms.
* MIT - 6-00sc - An easy and well-explained introduction to algorithms.

YouTube Playlist


* Tim Roughgarden. Algorithms Illuminated - 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 - 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 - 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 - 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 - It teaches lesser-known algorithmic approaches like immutable data structures—stacks, queues, deques, and unusual constructions like Hughes lists.

Cheat Sheet

* Tech Interview Cheat Sheet
* Princeton DS Cheat Sheet
* CLRS in short
* Rice university DS course in short
* Algo Deck - An open-source collection of +200 algorithmic cards.

- Theoretical Computer Science - The interdisciplinary of Mathematics and Computer Science, distinguished by its emphasis on mathematical technique and rigour.
- Math - Freely available lecture notes on mathematics.

License

![Creative Commons License](http://creativecommons.org/licenses/by/4.0/)

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