awesome-algorithms
A curated list of awesome places to learn and/or practice algorithms.
https://github.com/eric-erki/awesome-algorithms
Last synced: about 5 hours ago
JSON representation
-
Github Libraries
- by @ EvgenyKarkan
- by @justcoding121
- by @trekhleb
- by @felipernb
- by @kennyledet
- by @sagivo
- by @keon
- by @aalhour
- by @kanwei
- by @xtaci
- by @duereg
- by @mgechev
- C
- by @nryoung
- Erlang
- Scala
- by @phishman3579
- by @yusufcakal
- Go
- by @prakhar1989
- by @jiayihu
- by @patmorin
- by @indy256
- by @pedrovgs
- by @nzakas
- by @Erdos-Graph-Framework
- CoffeeScript
- by @PetarV-
- by @jpa99
- by @asmolich
- by @psjava
- by @jeandersonbc
- by @deepak-malik
- by @ManrajGrover
- by @zonayedpca
- by @laurentluce
- by @kumar91gopi
- by @kingreza
- by @shkolovy
- by @faheel
- by @nbro
- by @waynewbishop
- by @hollance
- by @sslotin
- by @amejiarosario
-
Online Courses
- Khan Academy Algorithms - Algorithm course ministred by Tomas Cormen and Devin Balkcom.
- 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.
- 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.
- Udacity Intro to Algorithms - Python-based Algorithms course.
- MIT - 6-046j - Similar to the previous one, but with different algorithms.
- Algorithms in Motion - Beginner's algorithms course with fun illustrations, based on the book Grokking Algorithms
- MIT - 6-006 - Well explained algorithms.
- MIT - 6-00sc - An easy and well explained introduction to algorithms.
-
Online Judges
- ProjectEuler - Mathematical problems that can be solved using algorithms (or just a pencil, depends on how much you already know).
- CodeChef - More problems and monthly online contests.
- LeetCode - Learn algorithms and prepare for interviews.
- HackerRank - Featured algorithm and functional programming online judges
- 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.
- HackerEarth - Practice alogrithmic problems & challenges and participate in hiring challenges.
- Interviewbit - Learn, practice and prepare for interviews.
- Kattis - Online judge and problem archive
- TopCoder - Lots of problems and real world/money worthy problems in Graphic Design, Data Science and Development.
- Learneroo Algorithms Tutorials - Learn and practice algorithms by solving challenges online.
- PKU JudgeOnline - Chinese Online Judge.
- A2 Online Judge - Online Judge and problem archive.
- ACM-ICPC Live Archive - Hundreds of problems from previous ACM-ICPC Regionals and World Finals.
- 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
- CodeMarshal - Real world contests online!
- Coding Blocks - Website that have problems based on Maths, Data Structures, Various Algorithm and also conducts Coding Competition.
- HiHoCoder - Chinese and English problem solving practice and recruitment challenge site.
- LavidaOnlineJudge - Korean Online Judge(Half English). 1300+ problems.
- ShareCode.io - Online Judge and contest host with a lot of algorithmic problems in the archive to practice.
- AIZU ONLINE JUDGE - Japanese Online Judge.
- CodeMarshal - Real world contests online!
- URI - Brazilian Online Judge. Not so much problems, but it's growing and it has online contests.
- Codefights - Practive programming and tackle out your next tech interview
- HiHoCoder - Chinese and English problem solving practice and recruitment challenge site.
- LavidaOnlineJudge - Korean Online Judge(Half English). 1300+ problems.
- PKU JudgeOnline - Chinese Online Judge.
- SPOJ - More problems.
- Codeforces - The only programming contests Web 2.0 platform
- Rosalind - A platform for learning bioinformatics and programming through problem solving.
- CodeWars - A website that houses support to solve algorithms in many languages in varying difficulty.
- 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 have problems based on Maths, Data Structures, Various Algorithm and also conducts Coding Competition.
- Infoarena - Romanian Online Judge. 1500+ algorithmic problems
- URI - Brazilian Online Judge. Not so much problems, but it's growing and it has online contests.
-
Books
- 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.
- Swift Algorithms & Data Structures - A practical guide to concepts, theory and code.
- Elementary Algorithms - An awesome book about algorithms and data structures.
- Introduction to Algorithms - Essential!
- Structure and Interpretation of Computer Programs
- Swift Algorithms & Data Structures - A practical guide to concepts, theory and code.
- Structure and Interpretation of Computer Programs
- Data Structures Using C - The basic concepts and usages of data structures.
- Algorithms - Problems explained with Java, OO good practices, visualizations, and free online resources.
- Grokking Algorithms - An illustrated book on algorithms with practical examples.
-
Blogs
- An awesome list for competitive programming! - Awesome blog for all the resources and list of books and algorithms.
- Sport of Programming - Really informative blog for starting with the sport of programming.
- Algorithms and Data Structures - For getting deeper knowledge of algorithms and how to think in right direction.
- Algorithms and Data Structures - For getting deeper knowledge of algorithms and how to think in right direction.
- Algorithms and Data Structures - For getting deeper knowledge of algorithms and how to think in right direction.
-
Websites
- A Visual Guide to Graph Traversal Algorithms - Interactive visualisations for learning how graph traversal algorithms work
- Code-Drills - Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Path Finding - A visual representation on how algorithms such as A\*, IDA\*, Breadth-First-Search, Best-First-Search and others describe a path between two points A and B.
- Stoimen's web log - Some algorithms nicely explained.
- Wikipedia - Algorithms - Of course!!
- Wikipedia - Data Structures - and why not ?!!
- Code-Drills - Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Code-Drills - Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Code-Drills - Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Algorithm Visualizer - Dozens of animated algorithms (with code), and you can also create your own.
- Code-Drills - Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Code-Drills - Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Geeks for Geeks - Lots and lots of well explained and implemented algorithms.
- Stoimen's web log - Some algorithms nicely explained.
- VisuAlgo - Visualising data structures and algorithms through animation.
- Algorithm Visualizer - Dozens of animated algorithms (with code), and you can also create your own.
- Data Structure Visualizations - Visualize the behavior of Data Structures and play with its operations.
- Sorting Algorithms - Nice and simple animations of sorting algorithms. With short codes and discussions.
- Algorithms Visualization - A dense article on Algorithms Visualization.
- The Sound of Sorting - The Sound of Sorting - "Audibilization" and Visualization of Sorting Algorithms
- Big-O Cheat Sheet - Big-O complexities of common algorithms used in Computer Science.
- Rosetta Code - A programming chrestomathy site which aims to present implementations of many algorithms and data structures in different programming languages.
-
Cheat Sheets
-
Tools
- interactive-coding-challenges - Interactive, test-driven coding challenges (algorithms and data structures).
Programming Languages
Categories
Sub Categories
Keywords
algorithm
11
data-structures
9
algorithms
7
binary-trees
4
sorting-algorithms
4
graph
4
computer-science
3
javascript
3
sort
3
tree
3
java
3
interview-questions
2
functional-programming
2
competitive-programming
2
data-structure
2
python
2
csharp
2
graph-algorithms
2
interview
2
javascript-algorithms
1
encript
1
interview-preparation
1
machine-learning
1
treaps
1
splaytrees
1
problems
1
rtree
1
red-black-tree
1
quadtree
1
pairing-heap
1
heap
1
fibonacci-heap
1
solutions
1
btrees
1
textbook
1
avl-tree
1
cpp
1
objective-c
1
kotlin
1
okasaki
1
haskell
1
library
1
isc
1
c
1
computer-science-algorithms
1
tree-algorithms
1
sorting
1
searching-algorithms
1
searching
1
queues
1