580 lines
28 KiB
HTML
580 lines
28 KiB
HTML
<h1 id="awesome-algorithms">Awesome Algorithms</h1>
|
||
<p>A curated list of awesome places to learn and/or practice algorithms.
|
||
Inspired by <a
|
||
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>
|
||
and all the other awesome Awesome libraries.</p>
|
||
<p>If you want to contribute, please read the <a
|
||
href="https://github.com/tayllan/awesome-algorithms/blob/master/CONTRIBUTING.md">contribution
|
||
guidelines</a>.</p>
|
||
<ul>
|
||
<li><a href="#awesome-algorithms">Awesome Algorithms</a>
|
||
<ul>
|
||
<li><a href="#websites">Websites</a></li>
|
||
<li><a href="#youtube-playlists">YouTube Playlists</a></li>
|
||
<li><a href="#online-courses">Online Courses</a></li>
|
||
<li><a href="#books">Books</a></li>
|
||
<li><a href="#cheat-sheets">Cheat Sheets</a></li>
|
||
<li><a href="#github-libraries">Github Libraries</a></li>
|
||
<li><a href="#online-judges">Online Judges</a></li>
|
||
<li><a href="#tools">Tools</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="websites">Websites</h2>
|
||
<p><em>Websites you should use to learn classic algorithms</em></p>
|
||
<ul>
|
||
<li><a href="https://workshape.github.io/visual-graph-algorithms/">A
|
||
Visual Guide to Graph Traversal Algorithms</a> - Interactive
|
||
visualizations for learning how graph traversal algorithms work.</li>
|
||
<li><a
|
||
href="https://www.w3schools.in/data-structures-tutorial/intro/">W3School</a>
|
||
- Data Structures tutorial.</li>
|
||
<li><a href="https://www.codechef.com/LEARNDSA/">CodeChef</a> - Learning
|
||
DSA by practice on Codechef</li>
|
||
<li><a href="http://algo-visualizer.jasonpark.me/">Algorithm
|
||
Visualizer</a> - Dozens of animated algorithms (with code), and you can
|
||
also create your own.</li>
|
||
<li><a href="http://bost.ocks.org/mike/algorithms/">Algorithms
|
||
Visualization</a> - A dense article on Algorithms Visualization.</li>
|
||
<li><a href="http://bigocheatsheet.com/">Big-O Cheat Sheet</a> - Big-O
|
||
complexities of common algorithms used in Computer Science.</li>
|
||
<li><a href="https://code-drills.com/tools/comparator">Code-Drills</a> -
|
||
Practice problems recommender (includes Codeforces, Codechef, and
|
||
Spoj).</li>
|
||
<li><a href="https://cp-algorithms.com/">CP-Algorithms</a> - Algorithms
|
||
and data structures are especially popular in the field of competitive
|
||
programming.</li>
|
||
<li><a
|
||
href="http://www.cs.usfca.edu/~galles/visualization/Algorithms.html">Data
|
||
Structure Visualizations</a> - Visualize the behavior of Data Structures
|
||
and play with its operations.</li>
|
||
<li><a
|
||
href="http://www.geeksforgeeks.org/fundamentals-of-algorithms/">Geeks
|
||
for Geeks</a> - Lots and lots of well-explained and implemented
|
||
algorithms.</li>
|
||
<li><a href="https://qiao.github.io/PathFinding.js/visual/">Path
|
||
Finding</a> - 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.</li>
|
||
<li><a href="https://www.programiz.com/dsa">Programiz</a> - Easy to
|
||
follow tutorials on data structures and algorithms along with suitable
|
||
examples.</li>
|
||
<li><a href="http://rosettacode.org/wiki/Rosetta_Code">Rosetta Code</a>
|
||
- A programming chrestomathy site that aims to present implementations
|
||
of many algorithms and data structures in different programming
|
||
languages.</li>
|
||
<li><a href="http://www.sorting-algorithms.com/">Sorting Algorithms</a>
|
||
- Nice and simple animations of sorting algorithms. With short codes and
|
||
discussions.</li>
|
||
<li><a href="http://www.stoimen.com/">Stoimen’s web log</a> - Some
|
||
algorithms nicely explained.</li>
|
||
<li><a href="http://panthema.net/2013/sound-of-sorting/">The Sound of
|
||
Sorting</a> - The Sound of Sorting - “Audibilization” and Visualization
|
||
of Sorting Algorithms</li>
|
||
<li><a href="http://visualgo.net">VisuAlgo</a> - Visualising data
|
||
structures and algorithms through animation.</li>
|
||
<li><a href="https://en.wikipedia.org/wiki/List_of_algorithms">Wikipedia
|
||
- Algorithms</a> - Of course!!</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/List_of_data_structures">Wikipedia -
|
||
Data Structures</a> - and why not ?!!</li>
|
||
<li><a href="https://learnersbucket.com/">Learnersbucket</a> - Tutorials
|
||
on data structures and algorithms in Javascript.</li>
|
||
<li><a href="https://www.redblobgames.com/">redblobgames</a> -
|
||
interactive visual explanations of math and algorithms, using motivating
|
||
examples from computer games.</li>
|
||
</ul>
|
||
<h2 id="youtube-playlists">Youtube Playlists</h2>
|
||
<p><em>High Quality Courses and tutorials on youtube</em></p>
|
||
<ul>
|
||
<li><p><a
|
||
href="https://www.youtube.com/watch?v=8hly31xKli0">FreeCodeCamp -
|
||
Algorithms and Data Structures Tutorial - Full Course for Beginners</a>
|
||
- Complete beginner friendly Algorithms and Data Structures Tutorial
|
||
with mindblowing animation.</p></li>
|
||
<li><p><a
|
||
href="https://www.youtube.com/watch?v=0IAPZzGSbME&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O">Abdul
|
||
Bari - Introduction to Algorithm</a> - This playlist is so much
|
||
informative and provide simulation with code example. As like as you are
|
||
in a class.</p></li>
|
||
<li><p><a
|
||
href="https://www.youtube.com/watch?v=AT14lCXuMKI&list=PLdo5W4Nhv31bbKJzrsKfMpo_grxuLl8LU">Jenny’s
|
||
Lectures- Algorithm</a> - Another complete alogrithm playlist from basic
|
||
level to intermediate. Easy explanation and simulation.</p></li>
|
||
</ul>
|
||
<h2 id="online-courses">Online Courses</h2>
|
||
<p><em>Free and High-Quality Courses Online</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/algorithms-divide-conquer">Algorithms:
|
||
Divide and Conquer, Sorting and Searching, and Randomized Algorithms</a>
|
||
- The primary topics are: asymptotic (“Big-oh”) notation, sorting and
|
||
searching, divide and conquer, and randomized algorithms.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/algorithms-graphs-data-structures">Algorithms:
|
||
Graph Search, Shortest Paths, and Data Structures</a> - The primary
|
||
topics are: data structures, graph primitives, and their
|
||
applications.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/algorithms-greedy">Algorithms:
|
||
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming</a> -
|
||
The primary topics are: greedy algorithms and dynamic programming.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/algorithms-npcomplete">Algorithms:
|
||
Shortest Paths Revisited, NP-Complete Problems and What To Do About
|
||
Them</a> - The primary topics are: shortest paths, NP-completeness and
|
||
what it means for the algorithm designer, and strategies for coping with
|
||
computationally intractable problems.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/algorithms-part1/home/welcome">Algorithms,
|
||
Part I</a> - 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.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/algorithms-part2">Algorithms, Part
|
||
II</a> - Part II focuses on graph- and string-processing
|
||
algorithms.</li>
|
||
<li><a
|
||
href="https://www.khanacademy.org/computing/computer-science/algorithms">Khan
|
||
Academy Algorithms</a> - Algorithm course ministered by Tomas Cormen and
|
||
Devin Balkcom.</li>
|
||
<li><a
|
||
href="https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/video_galleries/lecture-videos/">MIT
|
||
- 6-006</a> - Well explained algorithms.</li>
|
||
<li><a
|
||
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/">MIT
|
||
- 6-046j</a> - Similar to the previous one, but with different
|
||
algorithms.</li>
|
||
<li><a
|
||
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/index.htm">MIT
|
||
- 6-00sc</a> - An easy and well-explained introduction to
|
||
algorithms.</li>
|
||
<li><a
|
||
href="https://ocw.mit.edu/courses/18-409-topics-in-theoretical-computer-science-an-algorithmists-toolkit-fall-2009/">MIT
|
||
18-409 - Topics in Theoretical Computer Science: An Algorithmist’s
|
||
Toolkit</a> - It covers a collection of geometric techniques that apply
|
||
broadly in modern algorithm design.</li>
|
||
<li><a
|
||
href="https://www.udacity.com/course/intro-to-algorithms--cs215">Udacity
|
||
Intro to Algorithms</a> - Python-based Algorithms course.</li>
|
||
<li><a
|
||
href="https://www.manning.com/livevideo/algorithms-in-motion">Algorithms
|
||
in Motion</a> - Beginner’s algorithms course with fun illustrations,
|
||
based on the book Grokking Algorithms</li>
|
||
<li><del><a
|
||
href="https://www.youtube.com/channel/UCv3Kd0guxD5KWQtP---9D6g">YogiBearian
|
||
YouTube Channel</a> - Lots of well-explained videos on various computer
|
||
science subjects.</del> <em>Account terminated due to violations of
|
||
Youtube Policies.</em></li>
|
||
</ul>
|
||
<h2 id="books">Books</h2>
|
||
<p><em>The most highly regarded books to learn algorithms</em></p>
|
||
<h3 id="algorithms-and-data-structures">Algorithms and Data
|
||
structures</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.pearsonhighered.com/program/Kleinberg-Algorithm-Design/PGM319216.html">Algorithm
|
||
Design</a> - Pretty straightforward.</li>
|
||
<li><a href="http://algs4.cs.princeton.edu/home/">Algorithms</a> -
|
||
Problems explained with Java, OO good practices, visualizations, and
|
||
free online resources.</li>
|
||
<li><a href="https://gum.co/dsajs">Algorithms and Data Structures in
|
||
JavaScript</a> - Classical algorithms and data structures implemented
|
||
and explained using JavaScript.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Algorithms-Nutshell-In-OReilly/dp/059651624X">Algorithms
|
||
in a Nutshell</a> - by George T. Heineman.</li>
|
||
<li><a
|
||
href="https://www.manning.com/books/classic-computer-science-problems-in-python">Classic
|
||
Computer Science Problems in Python</a> -This great book presents dozens
|
||
of coding challenges, ranging from simple tasks to clustering data using
|
||
k-means.</li>
|
||
<li><a
|
||
href="https://www.amazon.in/Data-Structures-Algorithms-Made-Easy/dp/819324527X">Data
|
||
Structures and Algorithms Made Easy</a> - A great way to implement
|
||
algorithms with their specific programmable tasks.</li>
|
||
<li><a
|
||
href="http://www.amazon.com/Data-Structures-Using-Aaron-Tenenbaum/dp/0131997467">Data
|
||
Structures Using C</a> - The basic concepts and usages of data
|
||
structures.</li>
|
||
<li><a href="https://github.com/liuxinyu95/AlgoXY">Elementary
|
||
Algorithms</a> - An awesome book about algorithms and data
|
||
structures.</li>
|
||
<li><a href="http://www.manning.com/bhargava">Grokking Algorithms</a> -
|
||
An illustrated book on algorithms with practical examples.</li>
|
||
<li><a
|
||
href="http://mitpress.mit.edu/books/introduction-algorithms">Introduction
|
||
to Algorithms</a> - Essential!</li>
|
||
<li><a href="https://mitpress.mit.edu/books/real-world-algorithms">Real
|
||
World Algorithms: A Beginner’s Guide</a> - An introduction to algorithms
|
||
for readers with no background in advanced mathematics or computer
|
||
science.</li>
|
||
<li><a href="http://shop.waynewbishop.com/">Swift Algorithms & Data
|
||
Structures</a> - A practical guide to concepts, theory, and code.</li>
|
||
<li><a href="http://www.algorist.com/">The Algorithm Design Manual</a> -
|
||
Easy to read and full of real-world examples.</li>
|
||
<li><a href="http://www-cs-faculty.stanford.edu/~uno/taocp.html">The Art
|
||
of Computer Programming</a> - The Book.</li>
|
||
<li><a
|
||
href="https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-second-edition">Structure
|
||
and Interpretation of Computer Programs</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/algorithms-and-data-structures-in-action">Algorithms
|
||
and Data Structures in Action</a> - A different and a great way to
|
||
introduce algorithms and data structures that can be used at work.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Algorithmic-Puzzles-Anany-Levitin/dp/0199740445">Algorithmic
|
||
Puzzles</a> - A very accessible illustration of algorithms in the forms
|
||
of puzzles. No programming experience is required!</li>
|
||
<li><a href="https://web.stanford.edu/class/cs166/">Standford CS166</a>
|
||
- Standford CS166, a course in the design, analysis, and implementation
|
||
of data structures.</li>
|
||
</ul>
|
||
<h3 id="algorithm-analysis">Algorithm Analysis</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.amazon.com/Introduction-Analysis-Algorithms-Introdu-Algori_p2-ebook/dp/B00B3TB7IQ">Sedgewick
|
||
& Flajolet. An Introduction to the Analysis of Algorithm</a> - Am
|
||
advanced complete survey, intended only for the mathematically matured
|
||
reader.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Analysis-Algorithms-Jeffrey-McConnell/dp/0763707821">McConnell.
|
||
Analysis of Algorithms</a> - A very accessible and brief book on
|
||
algorithms analysis, with implemented code included.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Practical-Analysis-Algorithms-Undergraduate-Computer/dp/331909887X">Vrajitoru
|
||
& Knight. Practical Analysis of Algorithms</a> - A very accessible
|
||
and brief book on algorithms analysis, with implemented code
|
||
included.</li>
|
||
</ul>
|
||
<h3 id="randomized-algorithms">Randomized Algorithms</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.amazon.com/Randomized-Algorithms-Rajeev-Motwani/dp/0521474655">Motwani
|
||
& Raghavan. Randomized Algorithms</a> - A standard classic
|
||
book.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Probability-Computing-Randomization-Probabilistic-Techniques-ebook/dp/B06X9YBMFK">Mitzenmacher
|
||
& Upfal. Probability and Computing: Randomization and Probabilistic
|
||
Techniques in Algorithms and Data Analysis</a> - Standard text for
|
||
probability methods and their applications on randomized
|
||
algorithms.</li>
|
||
</ul>
|
||
<h2 id="cheat-sheets">Cheat Sheets</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/TSiege/Tech-Interview-Cheat-Sheet">Tech
|
||
Interview Cheat Sheet</a></li>
|
||
<li><a href="https://algs4.cs.princeton.edu/cheatsheet/">Princeton DS
|
||
Cheat Sheet</a></li>
|
||
<li><a href="https://sinon.org/algorithms//#data-structures">CLRS in
|
||
short</a></li>
|
||
<li><a href="https://www.clear.rice.edu/comp160/data1.html">Rice
|
||
university DS course in short</a></li>
|
||
<li><a
|
||
href="https://www.reddit.com/r/learnprogramming/comments/3gpvyx/algorithms_and_data_structures_cheat_sheets/">Useful
|
||
Reddit thread</a></li>
|
||
<li><a href="https://github.com/teivah/algodeck/">Algo Deck</a> - An
|
||
open-source collection of +200 algorithmic cards.</li>
|
||
</ul>
|
||
<h2 id="github-libraries">Github Libraries</h2>
|
||
<p><em>Implementations of the most classic algorithms in a wide variety
|
||
of programming languages</em></p>
|
||
<ul>
|
||
<li>C
|
||
<ul>
|
||
<li><a href="https://github.com/fragglet/c-algorithms">by <span
|
||
class="citation" data-cites="fragglet">@fragglet</span></a></li>
|
||
<li><a href="https://github.com/TheAlgorithms/C">by <span
|
||
class="citation"
|
||
data-cites="TheAlgorithms">@TheAlgorithms</span></a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://github.com/BrunoRB/algorithms.coffee">CoffeeScript</a></li>
|
||
<li>C#
|
||
<ul>
|
||
<li><a href="https://github.com/shkolovy/classic-algorithms">by <span
|
||
class="citation" data-cites="shkolovy">@shkolovy</span></a></li>
|
||
<li><a href="https://github.com/aalhour/C-Sharp-Algorithms">by <span
|
||
class="citation" data-cites="aalhour">@aalhour</span></a></li>
|
||
<li><a href="https://github.com/justcoding121/Advanced-Algorithms">by
|
||
<span class="citation"
|
||
data-cites="justcoding121">@justcoding121</span></a></li>
|
||
</ul></li>
|
||
<li>C++
|
||
<ul>
|
||
<li><a href="https://github.com/xtaci/algorithms">by <span
|
||
class="citation" data-cites="xtaci">@xtaci</span></a></li>
|
||
<li><a href="https://github.com/PetarV-/Algorithms">by <span
|
||
class="citation" data-cites="PetarV">@PetarV</span>-</a></li>
|
||
<li><a href="https://github.com/faheel/Algos">by <span class="citation"
|
||
data-cites="faheel">@faheel</span></a></li>
|
||
<li><a href="http://github.com/sslotin/algo">by <span class="citation"
|
||
data-cites="sslotin">@sslotin</span></a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://github.com/aggelgian/erlang-algorithms">Erlang</a></li>
|
||
<li>Go
|
||
<ul>
|
||
<li><a href="https://github.com/arnauddri/algorithms">by <span
|
||
class="citation" data-cites="arnauddri">@arnauddri</span></a></li>
|
||
<li><a
|
||
href="https://github.com/floyernick/Data-Structures-and-Algorithms">by
|
||
<span class="citation"
|
||
data-cites="floyernick">@floyernick</span></a></li>
|
||
</ul></li>
|
||
<li>Java
|
||
<ul>
|
||
<li><a href="https://github.com/jpa99/Algorithms">by <span
|
||
class="citation" data-cites="jpa99">@jpa99</span></a></li>
|
||
<li><a
|
||
href="https://github.com/phishman3579/java-algorithms-implementation">by
|
||
<span class="citation"
|
||
data-cites="phishman3579">@phishman3579</span></a></li>
|
||
<li><a href="https://github.com/asmolich/algorithms">by <span
|
||
class="citation" data-cites="asmolich">@asmolich</span></a></li>
|
||
<li><a href="https://github.com/psjava/psjava">by <span class="citation"
|
||
data-cites="psjava">@psjava</span></a></li>
|
||
<li><a href="https://github.com/jeandersonbc/algorithms-and-ds">by <span
|
||
class="citation" data-cites="jeandersonbc">@jeandersonbc</span></a></li>
|
||
<li><a href="https://github.com/pedrovgs/Algorithms">by <span
|
||
class="citation" data-cites="pedrovgs">@pedrovgs</span></a></li>
|
||
<li><a href="https://github.com/Erdos-Graph-Framework/Erdos">by <span
|
||
class="citation"
|
||
data-cites="Erdos-Graph-Framework">@Erdos-Graph-Framework</span></a></li>
|
||
<li><a href="https://github.com/deepak-malik/Data-Structures-In-Java">by
|
||
<span class="citation"
|
||
data-cites="deepak-malik">@deepak-malik</span></a></li>
|
||
<li><a href="https://github.com/yusufcakal/algorithms">by <span
|
||
class="citation" data-cites="yusufcakal">@yusufcakal</span></a></li>
|
||
<li><a
|
||
href="https://github.com/FarheenB/Data-Structures-and-Algorithms">by
|
||
<span class="citation" data-cites="FarheenB">@FarheenB</span></a></li>
|
||
</ul></li>
|
||
<li>JavaScript
|
||
<ul>
|
||
<li><a href="https://github.com/jiayihu/pretty-algorithms">by <span
|
||
class="citation" data-cites="jiayihu">@jiayihu</span></a></li>
|
||
<li><a href="https://github.com/felipernb/algorithms.js">by <span
|
||
class="citation" data-cites="felipernb">@felipernb</span></a></li>
|
||
<li><a
|
||
href="https://github.com/nzakas/computer-science-in-javascript">by <span
|
||
class="citation" data-cites="nzakas">@nzakas</span></a></li>
|
||
<li><a href="https://github.com/duereg/js-algorithms">by <span
|
||
class="citation" data-cites="duereg">@duereg</span></a></li>
|
||
<li><a href="https://github.com/mgechev/javascript-algorithms">by <span
|
||
class="citation" data-cites="mgechev">@mgechev</span></a></li>
|
||
<li><a href="https://github.com/trekhleb/javascript-algorithms">by <span
|
||
class="citation" data-cites="trekhleb">@trekhleb</span></a></li>
|
||
<li><a href="https://github.com/ManrajGrover/algorithms-js">by <span
|
||
class="citation" data-cites="ManrajGrover">@ManrajGrover</span></a></li>
|
||
<li><a href="https://github.com/amejiarosario/dsa.js">by <span
|
||
class="citation"
|
||
data-cites="amejiarosario">@amejiarosario</span></a></li>
|
||
<li><a href="https://github.com/zonayedpca/AlgoDS.js">by <span
|
||
class="citation" data-cites="zonayedpca">@zonayedpca</span></a></li>
|
||
</ul></li>
|
||
<li>Lua
|
||
<ul>
|
||
<li><a href="https://github.com/EvandroLG/computer_science_in_lua">by
|
||
<span class="citation" data-cites="evandrolg">@evandrolg</span></a></li>
|
||
</ul></li>
|
||
<li>Objective-C
|
||
<ul>
|
||
<li><a href="https://github.com/EvgenyKarkan/EKAlgorithms">by @
|
||
EvgenyKarkan</a></li>
|
||
</ul></li>
|
||
<li>PHP
|
||
<ul>
|
||
<li><a href="https://github.com/TheAlgorithms/PHP">by <span
|
||
class="citation"
|
||
data-cites="TheAlgorithms">@TheAlgorithms</span></a></li>
|
||
</ul></li>
|
||
<li>Python
|
||
<ul>
|
||
<li><a href="https://github.com/nryoung/algorithms">by <span
|
||
class="citation" data-cites="nryoung">@nryoung</span></a></li>
|
||
<li><a href="https://github.com/prakhar1989/Algorithms">by <span
|
||
class="citation" data-cites="prakhar1989">@prakhar1989</span></a></li>
|
||
<li><a href="https://github.com/laurentluce/python-algorithms">by <span
|
||
class="citation" data-cites="laurentluce">@laurentluce</span></a></li>
|
||
<li><a href="https://github.com/nbro/ands">by <span class="citation"
|
||
data-cites="nbro">@nbro</span></a></li>
|
||
<li><a href="https://github.com/keon/algorithms">by <span
|
||
class="citation" data-cites="keon">@keon</span></a></li>
|
||
<li><a href="https://github.com/vinta/fuck-coding-interviews">by <span
|
||
class="citation" data-cites="vinta">@vinta</span></a></li>
|
||
</ul></li>
|
||
<li>Ruby
|
||
<ul>
|
||
<li><a href="https://github.com/kanwei/algorithms">by <span
|
||
class="citation" data-cites="kanwei">@kanwei</span></a></li>
|
||
<li><a href="https://github.com/sagivo/algorithms">by <span
|
||
class="citation" data-cites="sagivo">@sagivo</span></a></li>
|
||
<li><a
|
||
href="https://github.com/kumar91gopi/Algorithms-and-Data-Structures-in-Ruby">by
|
||
<span class="citation"
|
||
data-cites="kumar91gopi">@kumar91gopi</span></a></li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/vkostyukov/scalacaster">Scala</a></li>
|
||
<li>Swift
|
||
<ul>
|
||
<li><a href="https://github.com/kingreza/Swift-Algorithms-Strings-">by
|
||
<span class="citation" data-cites="kingreza">@kingreza</span></a></li>
|
||
<li><a href="https://github.com/waynewbishop/SwiftStructures">by <span
|
||
class="citation" data-cites="waynewbishop">@waynewbishop</span></a></li>
|
||
<li><a href="https://github.com/hollance/swift-algorithm-club">by <span
|
||
class="citation" data-cites="hollance">@hollance</span></a></li>
|
||
</ul></li>
|
||
<li>Language agnostic
|
||
<ul>
|
||
<li><a href="https://github.com/kennyledet/Algorithm-Implementations">by
|
||
<span class="citation"
|
||
data-cites="kennyledet">@kennyledet</span></a></li>
|
||
<li><a href="https://github.com/indy256/codelibrary">by <span
|
||
class="citation" data-cites="indy256">@indy256</span></a></li>
|
||
<li><a href="https://github.com/sagivo/algorithms">by <span
|
||
class="citation" data-cites="sagivo">@sagivo</span></a></li>
|
||
<li><a href="https://github.com/patmorin/ods">by <span class="citation"
|
||
data-cites="patmorin">@patmorin</span></a></li>
|
||
<li><a href="https://github.com/btjanaka/algorithm-problems">by <span
|
||
class="citation" data-cites="btjanaka">@btjanaka</span></a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="online-judges">Online Judges</h2>
|
||
<p><em>Online Judges to practice what you learned above</em></p>
|
||
<ul>
|
||
<li><a href="https://a2oj.com/">A2 Online Judge</a> - Online Judge and
|
||
problem archive.</li>
|
||
<li><a href="https://icpcarchive.ecs.baylor.edu/">ACM-ICPC Live
|
||
Archive</a> - Hundreds of problems from previous ACM-ICPC Regionals and
|
||
World Finals.</li>
|
||
<li><a href="http://judge.u-aizu.ac.jp/onlinejudge/">AIZU ONLINE
|
||
JUDGE</a> - Japanese Online Judge.</li>
|
||
<li><a href="http://www.algomuse.appspot.com">Algo Muse</a> -
|
||
Research-based algorithmic problems.</li>
|
||
<li><a href="https://atcoder.jp/">AtCoder</a> - Japanese programming
|
||
contest website.</li>
|
||
<li><a href="https://www.acmicpc.net/">Baekjoon Online Judge</a> -
|
||
Korean Online Judge. 10000+ problems. Supports 60+ languages.</li>
|
||
<li><a href="https://csacademy.com/">CS Academy</a> - Holds online
|
||
contests and IOI practice contests</li>
|
||
<li><a href="https://www.codechef.com/">CodeChef</a> - More problems and
|
||
monthly online contests.</li>
|
||
<li><a href="http://codeforces.com/">Codeforces</a> - The only
|
||
programming contests Web 2.0 platform</li>
|
||
<li><a href="https://codefights.com/">Codefights</a> - Practice
|
||
programming and tackle your next tech interview</li>
|
||
<li><a href="https://algo.codemarshal.org/">CodeMarshal</a> - Real-world
|
||
contests online!</li>
|
||
<li><a href="http://www.codewars.com/">CodeWars</a> - A website that
|
||
houses support to solve algorithms in many languages in varying
|
||
difficulty.</li>
|
||
<li><a href="http://www.coderbyte.com/">CoderByte</a> - A decent website
|
||
with algorithm challenges from beginner to advanced levels. Supports
|
||
most of the popular languages like C++, python, javascript, ruby.</li>
|
||
<li><a href="https://www.firecode.io/">Firecode</a> - 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.</li>
|
||
<li><a href="https://hack.codingblocks.com/app/">Coding Blocks</a> -
|
||
Website that has problems based on Maths, Data Structures, Various
|
||
Algorithm and also conducts Coding Competition.</li>
|
||
<li><a href="https://www.hackerearth.com/">HackerEarth</a> - Practice
|
||
algorithmic problems & challenges and participate in hiring
|
||
challenges.</li>
|
||
<li><a href="https://www.hackerrank.com/">HackerRank</a> - Featured
|
||
algorithm and functional programming online judges</li>
|
||
<li><a href="http://hihocoder.com/">HiHoCoder</a> - Chinese and English
|
||
problem-solving practice and recruitment challenge site.</li>
|
||
<li><a href="http://www.infoarena.ro/">Infoarena</a> - Romanian Online
|
||
Judge. 1500+ algorithmic problems</li>
|
||
<li><a href="https://www.interviewbit.com/">Interviewbit</a> - Learn,
|
||
practice, and prepare for interviews.</li>
|
||
<li><a href="https://open.kattis.com/">Kattis</a>- Online judge and
|
||
problem archive</li>
|
||
<li><a href="http://judge.lavida.us">LavidaOnlineJudge</a> - Korean
|
||
Online Judge(Half English). 1300+ problems.</li>
|
||
<li><a href="https://www.learneroo.com/subjects/8">Learneroo Algorithms
|
||
Tutorials</a> - Learn and practice algorithms by solving challenges
|
||
online.</li>
|
||
<li><a href="https://leetcode.com/">LeetCode</a> - Learn algorithms and
|
||
prepare for interviews.</li>
|
||
<li><a href="http://poj.org/">PKU JudgeOnline</a> - Chinese Online
|
||
Judge.</li>
|
||
<li><a href="https://projecteuler.net/">ProjectEuler</a> - Mathematical
|
||
problems that can be solved using algorithms (or just a pencil,
|
||
depending on how much you already know).</li>
|
||
<li><a href="http://rosalind.info/problems/locations/">Rosalind</a> - A
|
||
platform for learning bioinformatics and programming through
|
||
problem-solving.</li>
|
||
<li><a href="https://sharecode.io/">ShareCode.io</a> - Online Judge and
|
||
contest host with a lot of algorithmic problems in the archive to
|
||
practice.</li>
|
||
<li><a href="https://snakify.org/">Snakify</a> - An introductory Python
|
||
course with 100+ algorithmic problems and a step-by-step debugger (from
|
||
Russia).</li>
|
||
<li><a href="http://www.spoj.com/">SPOJ</a> - More problems.</li>
|
||
<li><a href="https://www.topcoder.com/">TopCoder</a> - Lots of problems
|
||
and real-world/money-worthy problems in Graphic Design, Data Science,
|
||
and Development.</li>
|
||
<li><a href="https://toph.co/">Toph</a> - Bangladeshi Online Judge.
|
||
Holds online contests regularly.</li>
|
||
<li><a href="https://www.urionlinejudge.com.br/judge/login">URI</a> -
|
||
Brazilian Online Judge. Not so many problems, but it’s growing and it
|
||
has online contests.</li>
|
||
<li><a href="https://uva.onlinejudge.org/">UVA</a> - Hundreds of
|
||
problems (from previous ACM-ICPC Regionals, World Finals, and
|
||
others).</li>
|
||
<li><a
|
||
href="https://app.codility.com/programmers/challenges/">Codility</a> -
|
||
Compete to land coding jobs at top companies</li>
|
||
</ul>
|
||
<h2 id="blogs">Blogs</h2>
|
||
<p><em>Awesome list of blogs, mainly for competitive programming but you
|
||
can refer to these when learning a new topic/algorithm</em></p>
|
||
<ul>
|
||
<li><a href="https://codeforces.com/blog/entry/23054">An awesome list
|
||
for competitive programming!</a> - Awesome blog for all the resources
|
||
and list of books and algorithms.</li>
|
||
<li><a href="https://petr-mitrichev.blogspot.com/">Algorithms Weekly</a>
|
||
- A good blog by Petr Mitrichev, mainly in Java.</li>
|
||
<li><a
|
||
href="https://www.hackerearth.com/practice/notes/getting-started-with-the-sport-of-programming/">Sport
|
||
of Programming</a> - Informative blog for starting with the sport of
|
||
programming.</li>
|
||
<li><a href="http://www.allisons.org/ll/AlgDS/">Algorithms and Data
|
||
Structures</a> - For getting a deeper knowledge of algorithms and how to
|
||
think in the right direction.</li>
|
||
<li><a href="https://tanujkhattar.wordpress.com/">Algorithm Tutorials by
|
||
Tanuj Khattar</a> - Excellent blog by Tanuj Khattar. Covers tutorials on
|
||
some interesting data structures along with example problems to
|
||
solve.</li>
|
||
</ul>
|
||
<h2 id="tools">Tools</h2>
|
||
<p><em>Some tools that can help you in the learning of
|
||
algorithms</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/donnemartin/interactive-coding-challenges">interactive-coding-challenges</a>
|
||
- Interactive, test-driven coding challenges (algorithms and data
|
||
structures).</li>
|
||
</ul>
|
||
<h2 id="related-awesome-lists">Related Awesome Lists</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/rossant/awesome-math#readme">Math</a> -
|
||
Freely available lecture notes on mathematics.</li>
|
||
<li><a
|
||
href="https://github.com/mostafatouny/awesome-theoretical-computer-science/blob/main/README.md">Theoretical
|
||
Computer Science</a> - The interdisciplinary of Mathematics and Computer
|
||
Science, Distinguished by its emphasis on mathematical technique and
|
||
rigour.</li>
|
||
</ul>
|
||
<h2 id="license">License</h2>
|
||
<p>And for the sake of copyleft, here’s our license:</p>
|
||
<p><a href="http://creativecommons.org/licenses/by/4.0/"><img
|
||
src="http://i.creativecommons.org/l/by/4.0/88x31.png"
|
||
alt="Creative Commons License" /></a></p>
|
||
<p>This work is licensed under a <a
|
||
href="http://creativecommons.org/licenses/by/4.0/">Creative Commons
|
||
Attribution 4.0 International License</a>.</p>
|