Hello Readers! I’ve launched repository on GitHub with a collection of classic algorithms and data-structures implemented in ES6 JavaScript with explanations and links to further readings and YouTube videos. JavaScript Algorithms and Data Structures There is also YouTube playlist that contains all the videos mentioned in that repository so you may just go and take this hand-made online learning course :) Algorithms and Data Structures So I guess you’ve already grasped the main idea of the project — . helping developers to learn and practice algorithms and do it in JavaScript To make this process even smoother, I’ve tried to put some for each algorithm and data structure where it was possible just to make the idea behind those algorithms to be easily grasped and memorized. graphical illustrations You also may find some practical information just in the root README file that may be handy while you’re studying. Such information as: — to see quickly what is worse O(n!) or, let’s say, O(n²) big O notation graphs — to get the idea of how big is 10! (it is 3628800) list of some of the most used Big O notations and their performance comparisons — how fast are searches, reads, or insertions for different data-structures data structures operations complexity — to help you choose the proper sorting algorithm in your situation comparative table of sorting algorithms complexity This is done not only to keep code working correctly but also to give you an illustration of how each algorithm or data structure works, what basic operations they have (let’s say polling for heap), and what are the edge cases (what to do if the graph is directed). All code is 100% covered with tests. The repository also has a . This is just a small function template along with an empty test case that will help you to start testing or working on algorithms just right after cloning the repo. playground Linked List QueueStack Hash Table Heap Priority Queue Trie Tree (Binary Search Tree, AVL Tree) Graph (both directed and undirected) Disjoint Set On top of those data structures, . Among them are sorting, searching algorithms, graph/tree/sets/string/math related algorithms. more than 50 popular algorithms are implemented All algorithms are also categorized by their paradigms: — look at all the possibilities and selects the best solution Brute Force Algorithms — choose the best option at the current time, without any consideration for the future Greedy Algorithms — divide the problem into smaller parts and then solve those parts Divide and Conquer Algorithms — build up to a solution using previously found sub-solutions Dynamic Programming Algorithms — similarly to brute force try to generate all possible solutions but each time you generate a solution test if it satisfies all conditions, and only then continue generating subsequent solutions. Otherwise, backtrack and go on a different path of finding a solution. Backtracking Algorithms I hope this repository will be helpful for you! Enjoy coding! Previously published at https://itnext.io/algorithms-and-data-structures-in-javascript-a71548f902cb