awesome-algorithms

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

GitHub

20k stars
618 watching
3k forks
last commit: 17 days ago
Linked from 11 awesome lists


Awesome Algorithms / 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

Awesome Algorithms / 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

Awesome 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 6,058 about 2 months ago 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
Structure and Interpretation of Computer Programs
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

Awesome Algorithms / 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

Awesome Algorithms / 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

Awesome Algorithms / Cheat Sheets

Tech Interview Cheat Sheet 4,184 3 months ago
Princeton DS Cheat Sheet
CLRS in short
Rice university DS course in short
Useful Reddit thread
Algo Deck 5,628 over 1 year ago An open-source collection of +200 algorithmic cards

Awesome Algorithms / Github Libraries / C

by @fragglet 3,268 12 months ago
by @TheAlgorithms 18,942 about 2 months ago

Awesome Algorithms / Github Libraries

CoffeeScript 37 over 7 years ago

Awesome Algorithms / Github Libraries / C#

by @shkolovy 33 over 7 years ago
by @aalhour 5,926 about 1 year ago
by @justcoding121 1,302 almost 2 years ago

Awesome Algorithms / Github Libraries / C++

by @xtaci 5,245 2 months ago
by @PetarV- 641 over 2 years ago
by @faheel 507 5 months ago
by @sslotin

Awesome Algorithms / Github Libraries

Erlang 156 over 4 years ago

Awesome Algorithms / Github Libraries / Go

by @arnauddri 1,853 over 3 years ago
by @floyernick 2,768 5 months ago

Awesome Algorithms / Github Libraries / Java

by @jpa99 127 almost 4 years ago
by @phishman3579 4,440 almost 2 years ago
by @asmolich 14 about 10 years ago
by @psjava 72 almost 4 years ago
by @jeandersonbc 22 almost 7 years ago
by @pedrovgs 2,791 4 months ago
by @Erdos-Graph-Framework 126 about 1 year ago
by @deepak-malik 141 almost 3 years ago
by @yusufcakal 24 almost 5 years ago
by @FarheenB 141 over 2 years ago

Awesome Algorithms / Github Libraries / JavaScript

by @jiayihu 2,189 about 7 years ago
by @felipernb 3,727 over 2 years ago
by @nzakas 9,053 10 months ago
by @duereg 927 about 1 year ago
by @mgechev 7,832 6 months ago
by @trekhleb 187,629 about 2 months ago
by @ManrajGrover 199 8 months ago
by @amejiarosario 7,585 8 months ago
by @zonayedpca 110 almost 2 years ago

Awesome Algorithms / Github Libraries / Lua

by @evandrolg 50 over 5 years ago

Awesome Algorithms / Github Libraries / Objective-C

by @ EvgenyKarkan 2,423 16 days ago

Awesome Algorithms / Github Libraries / PHP

by @TheAlgorithms 1,862 17 days ago

Awesome Algorithms / Github Libraries / Python

by @nryoung 2,848 almost 6 years ago
by @prakhar1989 3,042 about 3 years ago
by @laurentluce 277 over 1 year ago
by @nbro 59 about 1 month ago
by @keon 23,967 3 months ago
by @vinta 689 over 1 year ago

Awesome Algorithms / Github Libraries / Ruby

by @kanwei 2,664 9 months ago
by @sagivo 3,266 about 2 years ago
by @kumar91gopi 718 about 1 month ago

Awesome Algorithms / Github Libraries

Scala 1,466 about 1 year ago

Awesome Algorithms / Github Libraries / Swift

by @kingreza 41 over 7 years ago
by @waynewbishop 2,099 over 2 years ago
by @hollance 28,762 5 months ago

Awesome Algorithms / Github Libraries / Language agnostic

by @kennyledet 2,192 almost 3 years ago
by @indy256 1,920 about 1 month ago
by @sagivo 3,266 about 2 years ago
by @patmorin 1,203 over 2 years ago
by @btjanaka 3 15 days ago

Awesome Algorithms / 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 Japanese Online Judge
Algo Muse Research-based algorithmic problems
AtCoder Japanese programming contest website
Baekjoon Online Judge Korean Online Judge. 10000+ problems. Supports 60+ languages
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
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

Awesome Algorithms / 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

Awesome Algorithms / Tools

interactive-coding-challenges 29,364 5 months ago Interactive, test-driven coding challenges (algorithms and data structures)
Math 8,706 16 days ago Freely available lecture notes on mathematics
Theoretical Computer Science 668 about 1 month ago The interdisciplinary of Mathematics and Computer Science, Distinguished by its emphasis on mathematical technique and rigour

Backlinks from these awesome lists: