awesome-algorithms
by tayllan
A curated list of awesome places to learn and/or practice algorithms.
AI summary
Algorithm learning resource
A curated list of resources to learn and practice algorithms.
- stars
- 21.1K
- forks
- 2.7K
- watching
- 613
- awesome lists
- 11
- entries
- 166
What's in the list
166 links in 27 sections, with live GitHub stats.activeno commit in 2y
Websites
- A Visual Guide to Graph Traversal Algorithms
Interactive visualizations for learning how graph traversal algorithms work
- W3School
Data Structures tutorial
- CodeChef
Learning DSA by practice on Codechef
- Algorithm Visualizer
Dozens of animated algorithms (with code), and you can also create your own
- Algorithms Visualization
A dense article on Algorithms Visualization
- Big-O Cheat Sheet
Big-O complexities of common algorithms used in Computer Science
- Code-Drills
Practice problems recommender (includes Codeforces, Codechef, and Spoj)
- CP-Algorithms
Algorithms and data structures are especially popular in the field of competitive programming
- Data Structure Visualizations
Visualize the behavior of Data Structures and play with its operations
- Geeks for Geeks
Lots and lots of well-explained and implemented algorithms
- Path Finding
A visual representation of how algorithms such as A*, IDA*, Breadth-First-Search, Best-First-Search, and others describe a path between two points A and B
- Programiz
Easy to follow tutorials on data structures and algorithms along with suitable examples
- Rosetta Code
A programming chrestomathy site that aims to present implementations of many algorithms and data structures in different programming languages
- Sorting Algorithms
Nice and simple animations of sorting algorithms. With short codes and discussions
- Stoimen's web log
Some algorithms nicely explained
- The Sound of Sorting
The Sound of Sorting - "Audibilization" and Visualization of Sorting Algorithms
- VisuAlgo
Visualising data structures and algorithms through animation
- Wikipedia - Algorithms
Of course!!
- Wikipedia - Data Structures
and why not ?!!
- Learnersbucket
Tutorials on data structures and algorithms in Javascript
- redblobgames
interactive visual explanations of math and algorithms, using motivating examples from computer games
Youtube Playlists
- Tim Roughgarden. Algorithms Illuminated
Tim Roughgarden, a pioneer of computer science, offers a companion to his book, with lecture videos and slides
- FreeCodeCamp - Algorithms and Data Structures Tutorial - Full Course for Beginners
Complete beginner friendly Algorithms and Data Structures Tutorial with mindblowing animation
- Abdul Bari - Introduction to Algorithm
This playlist is so much informative and provide simulation with code example. As like as you are in a class
- Jenny's Lectures- Algorithm
Another complete algorithm playlist from basic level to intermediate. Easy explanation and simulation
Online Courses
- Algorithms: Divide and Conquer, Sorting and Searching, and Randomized Algorithms
The primary topics are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer, and randomized algorithms
- Algorithms: Graph Search, Shortest Paths, and Data Structures
The primary topics are: data structures, graph primitives, and their applications
- Algorithms: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
The primary topics are: greedy algorithms and dynamic programming
- Algorithms: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
The primary topics are: shortest paths, NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems
- Algorithms, Part I
This course covers the essential information that every serious programmer needs to know about algorithms and data structures. Part I covers elementary data structures, sorting, and searching algorithms
- Algorithms, Part II
Part II focuses on graph- and string-processing algorithms
- Khan Academy Algorithms
Algorithm course ministered by Tomas Cormen and Devin Balkcom
- 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
- MIT 18-409 - Topics in Theoretical Computer Science: An Algorithmist's Toolkit
It covers a collection of geometric techniques that apply broadly in modern algorithm design
- Udacity Intro to Algorithms
Python-based Algorithms course
- Algorithms in Motion
Beginner's algorithms course with fun illustrations, based on the book Grokking Algorithms
Books / Algorithms and Data structures
- Algorithm Design
Pretty straightforward
- Algorithms
Problems explained with Java, OO good practices, visualizations, and free online resources
- Algorithms and Data Structures in JavaScript
Classical algorithms and data structures implemented and explained using JavaScript
- Algorithms in a Nutshell
by George T. Heineman
- Classic Computer Science Problems in Python
-This great book presents dozens of coding challenges, ranging from simple tasks to clustering data using k-means
- Data Structures and Algorithms Made Easy
A great way to implement algorithms with their specific programmable tasks
- Data Structures Using C
The basic concepts and usages of data structures
Elementary Algorithms
An awesome book about algorithms and data structures
- Grokking Algorithms
An illustrated book on algorithms with practical examples
- Introduction to Algorithms
Essential!
- Real World Algorithms: A Beginner's Guide
An introduction to algorithms for readers with no background in advanced mathematics or computer science
- Swift Algorithms & Data Structures
A practical guide to concepts, theory, and code
- The Algorithm Design Manual
Easy to read and full of real-world examples
- The Art of Computer Programming
The Book
- Advanced Algorithms and Data Structures
A different and a great way to introduce algorithms and data structures that can be used at work
- Algorithmic Puzzles
A very accessible illustration of algorithms in the forms of puzzles. No programming experience is required!
- Standford CS166
Standford CS166, a course in the design, analysis, and implementation of data structures
- Grokking Data Structures
Grokking Data Structures carefully guides you from the most basic data structures like arrays or linked lists all the way to powerful structures like graphs. It’s perfect for beginners
Books / Algorithm Analysis
- Sedgewick & Flajolet. An Introduction to the Analysis of Algorithm
Am advanced complete survey, intended only for the mathematically matured reader
- McConnell. Analysis of Algorithms
A very accessible and brief book on algorithms analysis, with implemented code included
- Vrajitoru & Knight. Practical Analysis of Algorithms
A very accessible and brief book on algorithms analysis, with implemented code included
Books / Randomized Algorithms
- Motwani & Raghavan. Randomized Algorithms
A standard classic book
- Mitzenmacher & Upfal. Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis
Standard text for probability methods and their applications on randomized algorithms
Cheat Sheets
Algo Deck
An open-source collection of +200 algorithmic cards
Github Libraries / C
Github Libraries
Github Libraries / C#
Github Libraries / C++
Github Libraries
Github Libraries / Go
Github Libraries / Java
Github Libraries / JavaScript
Github Libraries / Lua
Github Libraries / Objective-C
Github Libraries / PHP
Github Libraries / Python
Github Libraries / Ruby
Github Libraries
Github Libraries / Swift
Github Libraries / Language agnostic
Online Judges
- A2 Online Judge
Online Judge and problem archive
- ACM-ICPC Live Archive
Hundreds of problems from previous ACM-ICPC Regionals and World Finals
- AIZU ONLINE JUDGE
A Japanese online judge from the University of Aizu, offering a wide range of algorithmic challenges
- Algo Muse
Research-based algorithmic problems
- AtCoder
Japanese programming contest website
- Baekjoon Online Judge
Korean Online Judge. 10000+ problems. Supports 60+ languages
- Beecrowd
The Largest Competitive Programming and Online Code Judgement Platform in Latin America
- CS Academy
Holds online contests and IOI practice contests
- CodeChef
More problems and monthly online contests
- Codeforces
The only programming contests Web 2.0 platform
- Codefights
Practice programming and tackle your next tech interview
- CodeMarshal
Real-world contests online!
- CodeWars
A website that houses support to solve algorithms in many languages in varying difficulty
- CoderByte
A decent website with algorithm challenges from beginner to advanced levels. Supports most of the popular languages like C++, python, javascript, ruby
- Firecode
Firecode.io uses machine learning algorithms along with curated real-world interview questions, solutions & a vibrant social community of learners to get you ready for your next coding interview
- Coding Blocks
Website that has problems based on Maths, Data Structures, Various Algorithm and also conducts Coding Competition
- HackerEarth
Practice algorithmic problems & challenges and participate in hiring challenges
- HackerRank
Featured algorithm and functional programming online judges
- HiHoCoder
Chinese and English problem-solving practice and recruitment challenge site
- Infoarena
Romanian Online Judge. 1500+ algorithmic problems
- Interviewbit
Learn, practice, and prepare for interviews
- Kattis
Online judge and problem archive
- LavidaOnlineJudge
Korean Online Judge(Half English). 1300+ problems
- Learneroo Algorithms Tutorials
Learn and practice algorithms by solving challenges online
- LeetCode
Learn algorithms and prepare for interviews
- Paiza
A Japanese platform offering coding challenges and career preparation
- PKU JudgeOnline
Chinese Online Judge
- ProjectEuler
Mathematical problems that can be solved using algorithms (or just a pencil, depending on how much you already know)
- Rosalind
A platform for learning bioinformatics and programming through problem-solving
- ShareCode.io
Online Judge and contest host with a lot of algorithmic problems in the archive to practice
- Snakify
An introductory Python course with 100+ algorithmic problems and a step-by-step debugger (from Russia)
- SPOJ
More problems
- TopCoder
Lots of problems and real-world/money-worthy problems in Graphic Design, Data Science, and Development
- Toph
Bangladeshi Online Judge. Holds online contests regularly
- URI
Brazilian Online Judge. Not so many problems, but it's growing and it has online contests
- UVA
Hundreds of problems (from previous ACM-ICPC Regionals, World Finals, and others)
- Codility
Compete to land coding jobs at top companies
Blogs
- 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
- Sport of Programming
Informative blog for starting with the sport of programming
- Algorithms and Data Structures
For getting a deeper knowledge of algorithms and how to think in the right direction
- Algorithm Tutorials by Tanuj Khattar
Excellent blog by Tanuj Khattar. Covers tutorials on some interesting data structures along with example problems to solve
Tools
interactive-coding-challenges
Interactive, test-driven coding challenges (algorithms and data structures)
Related Awesome Lists
Math
Freely available lecture notes on mathematics
Theoretical Computer Science
The interdisciplinary of Mathematics and Computer Science, Distinguished by its emphasis on mathematical technique and rigour
Nothing in this list matches your filter.
Featured in 11 awesome lists
Each link jumps to the spot where the list mentions awesome-algorithms.