awesome-algorithms

Algorithm learning resource

A curated list of resources to learn and practice algorithms.

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

GitHub

21k stars
618 watching
3k forks
last commit: 5 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 / 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

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,092 21 days 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,275 5 months ago
Princeton DS Cheat Sheet
CLRS in short
Rice university DS course in short
Useful Reddit thread
Algo Deck 5,679 about 2 months ago An open-source collection of +200 algorithmic cards

Awesome Algorithms / Github Libraries / C

by @fragglet 3,350 about 1 year ago
by @TheAlgorithms 19,308 4 months ago

Awesome Algorithms / Github Libraries

CoffeeScript 37 over 7 years ago

Awesome Algorithms / Github Libraries / C#

by @shkolovy 35 over 7 years ago
by @aalhour 5,956 over 1 year ago
by @justcoding121 1,316 about 2 years ago

Awesome Algorithms / Github Libraries / C++

by @xtaci 5,274 4 months ago
by @PetarV- 645 over 2 years ago
by @faheel 510 7 months ago
by @sslotin

Awesome Algorithms / Github Libraries

Erlang 158 over 4 years ago

Awesome Algorithms / Github Libraries / Go

by @arnauddri 1,855 almost 4 years ago
by @floyernick 2,772 6 months ago

Awesome Algorithms / Github Libraries / Java

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

Awesome Algorithms / Github Libraries / JavaScript

by @jiayihu 2,189 about 7 years ago
by @felipernb 3,726 over 2 years ago
by @nzakas 9,065 11 months ago
by @duereg 927 about 1 year ago
by @mgechev 7,838 7 months ago
by @trekhleb 188,456 3 months ago
by @ManrajGrover 199 10 months ago
by @amejiarosario 7,606 10 months ago
by @zonayedpca 111 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,422 2 months ago

Awesome Algorithms / Github Libraries / PHP

by @TheAlgorithms 2,127 about 1 month ago

Awesome Algorithms / Github Libraries / Python

by @nryoung 2,851 about 6 years ago
by @prakhar1989 3,053 over 3 years ago
by @laurentluce 279 almost 2 years ago
by @nbro 60 3 months ago
by @keon 24,076 4 months ago
by @vinta 691 over 1 year ago

Awesome Algorithms / Github Libraries / Ruby

by @kanwei 2,669 10 months ago
by @sagivo 3,264 over 2 years ago
by @kumar91gopi 719 5 days ago

Awesome Algorithms / Github Libraries

Scala 1,468 over 1 year ago

Awesome Algorithms / Github Libraries / Swift

by @kingreza 42 over 7 years ago
by @waynewbishop 2,098 over 2 years ago
by @hollance 28,822 7 months ago

Awesome Algorithms / Github Libraries / Language agnostic

by @kennyledet 2,196 almost 3 years ago
by @indy256 1,939 3 months ago
by @sagivo 3,264 over 2 years ago
by @patmorin 1,209 almost 3 years ago
by @btjanaka 3 about 1 month 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 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

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,553 7 months ago Interactive, test-driven coding challenges (algorithms and data structures)
Math 8,869 5 days ago Freely available lecture notes on mathematics
Theoretical Computer Science 707 16 days ago The interdisciplinary of Mathematics and Computer Science, Distinguished by its emphasis on mathematical technique and rigour

Backlinks from these awesome lists:

More related projects: