Algorithms
Last updated
Last updated
A curated list of awesome places to learn and/or practice algorithms. Inspired by and all the other awesome Awesome libraries.
If you want to contribute, please read the .
Websites you should use to learn classic algorithms
- Interactive visualisations for learning how graph traversal algorithms work
- A didactic, animated, exposition of algorithms.
- Dozens of animated algorithms (with code), and you can also create your own.
- A dense article on Algorithms Visualization.
- Big-O complexities of common algorithms used in Computer Science.
- Practice problems recommender (includes Codeforces, Codechef and Spoj).
- Visualize the behavior of Data Structures and play with its operations.
- Lots and lots of well explained and implemented algorithms.
- 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.
- A programming chrestomathy site which aims to present implementations of many algorithms and data structures in different programming languages.
- Nice and simple animations of sorting algorithms. With short codes and discussions.
- Some algorithms nicely explained.
- The Sound of Sorting - "Audibilization" and Visualization of Sorting Algorithms
- Visualising data structures and algorithms through animation.
- Of course!!
- and why not ?!!
Free and High Quality Courses Online
The most highly regarded books to learn algorithms
Implementations of the most classic algorithms in a wide variety of programming languages
C#
C++
Java
JavaScript
Objective-C
Python
Ruby
Swift
Language agnostic
Online Judges to practice what you learned above
Some tools that can help you in the learning of algorithms
- The primary topics are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer, and randomized algorithms.
- The primary topics are: data structures, graph primitives, and their applications.
- The primary topics are: greedy algorithms and dynamic programming.
- The primary topics are: shortest paths, NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems.
- 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.
- Part II focuses on graph- and string-processing algorithms.
- Algorithm course ministred by Tomas Cormen and Devin Balkcom.
- Well explained algorithms.
- Similar to the previous one, but with different algorithms.
- An easy and well explained introduction to algorithms.
- Python-based Algorithms course.
- Beginner's algorithms course with fun illustrations, based on the book Grokking Algorithms
- Lots of well explained vidoes on various computer science subjects. Account terminated due to violations of Youtube Policies.
- Pretty straight-forward.
- Problems explained with Java, OO good practices, visualizations, and free online resources.
- The basic concepts and usages of data structures.
- An awesome book about algorithms and data structures.
- An illustrated book on algorithms with practical examples.
- Essential!
- A practical guide to concepts, theory and code.
- Easy to read and full of real world examples.
- The Book.
- Online Judge and problem archive.
- Hundreds of problems from previous ACM-ICPC Regionals and World Finals.
- Japanese Online Judge.
- Research based algorithmic problems.
- Korean Online Judge. 10000+ problems. Supports 60+ languages.
- Holds online contests and IOI practice contests
- More problems and monthly online contests.
- The only programming contests Web 2.0 platform
- Practive programming and tackle out your next tech interview
- Real world contests online!
- A website that houses support to solve algorithms in many languages in varying difficulty.
- A decent website with algorithm challenges from beginner to advanced levels. Supports most of the popular languages like C++, python, javascript, ruby.
- Practice alogrithmic problems & challenges and participate in hiring challenges.
- Featured algorithm and functional programming online judges
- Romanian Online Judge. 1500+ algorithmic problems
- Online judge and problem archive
- Korean Online Judge(Half English). 1300+ problems.
- Learn and practice algorithms by solving challenges online.
- Learn algorithms and prepare for interviews.
- Chinese Online Judge.
- Mathematical problems that can be solved using algorithms (or just a pencil, depends on how much you already know).
- A platform for learning bioinformatics and programming through problem solving.
- Online Judge and contest host with a lot of algorithmic problems in the archive to practice.
- An introductory Python course with 100+ algorithmic problems and a step-by-step debugger (from Russia).
- More problems.
- Lots of problems and real world/money worthy problems in Graphic Design, Data Science and Development.
- Brazilian Online Judge. Not so much problems, but it's growing and it has online contests.
- Hundreds of problems (from previous ACM-ICPC Regionals, World Finals and others).
- Interactive, test-driven coding challenges (algorithms and data structures).