update
This commit is contained in:
595
html/algorithms.md2.html
Normal file
595
html/algorithms.md2.html
Normal file
@@ -0,0 +1,595 @@
|
||||
<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/roadmap/algorithms">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><a href="https://www.algorithmsilluminated.org/">Tim Roughgarden.
|
||||
Algorithms Illuminated</a> - Tim Roughgarden, a pioneer of computer
|
||||
science, offers a companion to his book, with lecture videos and
|
||||
slides.</li>
|
||||
<li><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.</li>
|
||||
<li><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.</li>
|
||||
<li><a
|
||||
href="https://www.youtube.com/watch?v=AT14lCXuMKI&list=PLdo5W4Nhv31bbKJzrsKfMpo_grxuLl8LU">Jenny’s
|
||||
Lectures- Algorithm</a> - Another complete algorithm playlist from basic
|
||||
level to intermediate. Easy explanation and simulation.</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="https://ocw.mit.edu/courses/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video_galleries/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="https://mitpress.mit.edu/9780262046305/introduction-to-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/advanced-algorithms-and-data-structures">Advanced
|
||||
Algorithms and Data Structures</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>
|
||||
<li><a
|
||||
href="https://www.manning.com/books/grokking-data-structures">Grokking
|
||||
Data Structures</a> - 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.</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="https://onlinejudge.u-aizu.ac.jp/">AIZU ONLINE JUDGE</a> -
|
||||
A Japanese online judge from the University of Aizu, offering a wide
|
||||
range of algorithmic challenges.</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://judge.beecrowd.com/">Beecrowd</a> - The Largest
|
||||
Competitive Programming and Online Code Judgement Platform in Latin
|
||||
America.</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="https://paiza.jp/">Paiza</a> - A Japanese platform offering
|
||||
coding challenges and career preparation.</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>
|
||||
<p><a href="https://github.com/tayllan/awesome-algorithms">algorithms.md
|
||||
Github</a></p>
|
||||
Reference in New Issue
Block a user