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
613 watching
3k forks
last commit: almost 2 years ago
Linked from 11 awesome lists


Awesome Algorithms / Websites

A Visual Guide to Graph Traversal AlgorithmsInteractive visualizations for learning how graph traversal algorithms work
W3SchoolData Structures tutorial
CodeChefLearning DSA by practice on Codechef
Algorithm VisualizerDozens of animated algorithms (with code), and you can also create your own
Algorithms VisualizationA dense article on Algorithms Visualization
Big-O Cheat SheetBig-O complexities of common algorithms used in Computer Science
Code-DrillsPractice problems recommender (includes Codeforces, Codechef, and Spoj)
CP-AlgorithmsAlgorithms and data structures are especially popular in the field of competitive programming
Data Structure VisualizationsVisualize the behavior of Data Structures and play with its operations
Geeks for GeeksLots and lots of well-explained and implemented algorithms
Path FindingA 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
ProgramizEasy to follow tutorials on data structures and algorithms along with suitable examples
Rosetta CodeA programming chrestomathy site that aims to present implementations of many algorithms and data structures in different programming languages
Sorting AlgorithmsNice and simple animations of sorting algorithms. With short codes and discussions
Stoimen's web logSome algorithms nicely explained
The Sound of SortingThe Sound of Sorting - "Audibilization" and Visualization of Sorting Algorithms
VisuAlgoVisualising data structures and algorithms through animation
Wikipedia - AlgorithmsOf course!!
Wikipedia - Data Structuresand why not ?!!
LearnersbucketTutorials on data structures and algorithms in Javascript
redblobgamesinteractive visual explanations of math and algorithms, using motivating examples from computer games

Awesome Algorithms / Youtube Playlists

Tim Roughgarden. Algorithms IlluminatedTim 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 BeginnersComplete beginner friendly Algorithms and Data Structures Tutorial with mindblowing animation
Abdul Bari - Introduction to AlgorithmThis playlist is so much informative and provide simulation with code example. As like as you are in a class
Jenny's Lectures- AlgorithmAnother 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 AlgorithmsThe primary topics are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer, and randomized algorithms
Algorithms: Graph Search, Shortest Paths, and Data StructuresThe primary topics are: data structures, graph primitives, and their applications
Algorithms: Greedy Algorithms, Minimum Spanning Trees, and Dynamic ProgrammingThe primary topics are: greedy algorithms and dynamic programming
Algorithms: Shortest Paths Revisited, NP-Complete Problems and What To Do About ThemThe 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 IThis 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 IIPart II focuses on graph- and string-processing algorithms
Khan Academy AlgorithmsAlgorithm course ministered by Tomas Cormen and Devin Balkcom
MIT - 6-006Well explained algorithms
MIT - 6-046jSimilar to the previous one, but with different algorithms
MIT - 6-00scAn easy and well-explained introduction to algorithms
MIT 18-409 - Topics in Theoretical Computer Science: An Algorithmist's ToolkitIt covers a collection of geometric techniques that apply broadly in modern algorithm design
Udacity Intro to AlgorithmsPython-based Algorithms course
Algorithms in MotionBeginner's algorithms course with fun illustrations, based on the book Grokking Algorithms

Awesome Algorithms / Books / Algorithms and Data structures

Algorithm DesignPretty straightforward
AlgorithmsProblems explained with Java, OO good practices, visualizations, and free online resources
Algorithms and Data Structures in JavaScriptClassical algorithms and data structures implemented and explained using JavaScript
Algorithms in a Nutshellby 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 EasyA great way to implement algorithms with their specific programmable tasks
Data Structures Using CThe basic concepts and usages of data structures
Elementary Algorithms6,142almost 2 years agoAn awesome book about algorithms and data structures
Grokking AlgorithmsAn illustrated book on algorithms with practical examples
Introduction to AlgorithmsEssential!
Real World Algorithms: A Beginner's GuideAn introduction to algorithms for readers with no background in advanced mathematics or computer science
Swift Algorithms & Data StructuresA practical guide to concepts, theory, and code
The Algorithm Design ManualEasy to read and full of real-world examples
The Art of Computer ProgrammingThe Book
Structure and Interpretation of Computer Programs
Advanced Algorithms and Data StructuresA different and a great way to introduce algorithms and data structures that can be used at work
Algorithmic PuzzlesA very accessible illustration of algorithms in the forms of puzzles. No programming experience is required!
Standford CS166Standford CS166, a course in the design, analysis, and implementation of data structures
Grokking Data StructuresGrokking 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 AlgorithmAm advanced complete survey, intended only for the mathematically matured reader
McConnell. Analysis of AlgorithmsA very accessible and brief book on algorithms analysis, with implemented code included
Vrajitoru & Knight. Practical Analysis of AlgorithmsA very accessible and brief book on algorithms analysis, with implemented code included

Awesome Algorithms / Books / Randomized Algorithms

Motwani & Raghavan. Randomized AlgorithmsA standard classic book
Mitzenmacher & Upfal. Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data AnalysisStandard text for probability methods and their applications on randomized algorithms

Awesome Algorithms / Cheat Sheets

Tech Interview Cheat Sheet4,327about 2 years ago
Princeton DS Cheat Sheet
CLRS in short
Rice university DS course in short
Useful Reddit thread
Algo Deck5,690almost 2 years agoAn open-source collection of +200 algorithmic cards

Awesome Algorithms / Github Libraries / C

by @fragglet3,368almost 2 years ago
by @TheAlgorithms19,440about 2 years ago

Awesome Algorithms / Github Libraries

CoffeeScript37over 9 years ago

Awesome Algorithms / Github Libraries / C#

by @shkolovy35about 9 years ago
by @aalhour5,971about 3 years ago
by @justcoding1211,320almost 4 years ago

Awesome Algorithms / Github Libraries / C++

by @xtaci5,291about 2 years ago
by @PetarV-648over 4 years ago
by @faheel514over 2 years ago
by @sslotin

Awesome Algorithms / Github Libraries

Erlang158over 6 years ago

Awesome Algorithms / Github Libraries / Go

by @arnauddri1,854over 5 years ago
by @floyernick2,772over 2 years ago

Awesome Algorithms / Github Libraries / Java

by @jpa99128almost 6 years ago
by @phishman35794,463almost 4 years ago
by @asmolich15about 12 years ago
by @psjava73almost 6 years ago
by @jeandersonbc23over 8 years ago
by @pedrovgs2,790over 2 years ago
by @Erdos-Graph-Framework128about 3 years ago
by @deepak-malik146almost 5 years ago
by @yusufcakal25almost 7 years ago
by @FarheenB144over 4 years ago

Awesome Algorithms / Github Libraries / JavaScript

by @jiayihu2,186about 9 years ago
by @felipernb3,727over 4 years ago
by @nzakas9,072almost 3 years ago
by @duereg927about 3 years ago
by @mgechev7,844over 2 years ago
by @trekhleb188,874about 2 years ago
by @ManrajGrover200over 2 years ago
by @amejiarosario7,625over 2 years ago
by @zonayedpca112over 3 years ago

Awesome Algorithms / Github Libraries / Lua

by @evandrolg50over 7 years ago

Awesome Algorithms / Github Libraries / Objective-C

by @ EvgenyKarkan2,421about 2 years ago

Awesome Algorithms / Github Libraries / PHP

by @TheAlgorithms2,167almost 2 years ago

Awesome Algorithms / Github Libraries / Python

by @nryoung2,848almost 8 years ago
by @prakhar19893,053about 5 years ago
by @laurentluce279over 3 years ago
by @nbro60about 2 years ago
by @keon24,129about 2 years ago
by @vinta691over 3 years ago

Awesome Algorithms / Github Libraries / Ruby

by @kanwei2,676over 2 years ago
by @sagivo3,261about 4 years ago
by @kumar91gopi722almost 2 years ago

Awesome Algorithms / Github Libraries

Scala1,469about 3 years ago

Awesome Algorithms / Github Libraries / Swift

by @kingreza42over 9 years ago
by @waynewbishop2,098over 4 years ago
by @hollance28,859almost 2 years ago

Awesome Algorithms / Github Libraries / Language agnostic

by @kennyledet2,193almost 5 years ago
by @indy2561,944about 2 years ago
by @sagivo3,261about 4 years ago
by @patmorin1,212over 4 years ago
by @btjanaka3almost 2 years ago

Awesome Algorithms / Online Judges

A2 Online JudgeOnline Judge and problem archive
ACM-ICPC Live ArchiveHundreds of problems from previous ACM-ICPC Regionals and World Finals
AIZU ONLINE JUDGEA Japanese online judge from the University of Aizu, offering a wide range of algorithmic challenges
Algo MuseResearch-based algorithmic problems
AtCoderJapanese programming contest website
Baekjoon Online JudgeKorean Online Judge. 10000+ problems. Supports 60+ languages
BeecrowdThe Largest Competitive Programming and Online Code Judgement Platform in Latin America
CS AcademyHolds online contests and IOI practice contests
CodeChefMore problems and monthly online contests
CodeforcesThe only programming contests Web 2.0 platform
CodefightsPractice programming and tackle your next tech interview
CodeMarshalReal-world contests online!
CodeWarsA website that houses support to solve algorithms in many languages in varying difficulty
CoderByteA decent website with algorithm challenges from beginner to advanced levels. Supports most of the popular languages like C++, python, javascript, ruby
FirecodeFirecode.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 BlocksWebsite that has problems based on Maths, Data Structures, Various Algorithm and also conducts Coding Competition
HackerEarthPractice algorithmic problems & challenges and participate in hiring challenges
HackerRankFeatured algorithm and functional programming online judges
HiHoCoderChinese and English problem-solving practice and recruitment challenge site
InfoarenaRomanian Online Judge. 1500+ algorithmic problems
InterviewbitLearn, practice, and prepare for interviews
KattisOnline judge and problem archive
LavidaOnlineJudgeKorean Online Judge(Half English). 1300+ problems
Learneroo Algorithms TutorialsLearn and practice algorithms by solving challenges online
LeetCodeLearn algorithms and prepare for interviews
PaizaA Japanese platform offering coding challenges and career preparation
PKU JudgeOnlineChinese Online Judge
ProjectEulerMathematical problems that can be solved using algorithms (or just a pencil, depending on how much you already know)
RosalindA platform for learning bioinformatics and programming through problem-solving
ShareCode.ioOnline Judge and contest host with a lot of algorithmic problems in the archive to practice
SnakifyAn introductory Python course with 100+ algorithmic problems and a step-by-step debugger (from Russia)
SPOJMore problems
TopCoderLots of problems and real-world/money-worthy problems in Graphic Design, Data Science, and Development
TophBangladeshi Online Judge. Holds online contests regularly
URIBrazilian Online Judge. Not so many problems, but it's growing and it has online contests
UVAHundreds of problems (from previous ACM-ICPC Regionals, World Finals, and others)
CodilityCompete 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 WeeklyA good blog by Petr Mitrichev, mainly in Java
Sport of ProgrammingInformative blog for starting with the sport of programming
Algorithms and Data StructuresFor getting a deeper knowledge of algorithms and how to think in the right direction
Algorithm Tutorials by Tanuj KhattarExcellent blog by Tanuj Khattar. Covers tutorials on some interesting data structures along with example problems to solve

Awesome Algorithms / Tools

interactive-coding-challenges29,635over 2 years agoInteractive, test-driven coding challenges (algorithms and data structures)
Math8,977almost 2 years agoFreely available lecture notes on mathematics
Theoretical Computer Science747almost 2 years agoThe interdisciplinary of Mathematics and Computer Science, Distinguished by its emphasis on mathematical technique and rigour

Backlinks from these awesome lists:

More related projects: