Advertise here

JavaScript Algorithms and Data Structures

May 23, 2018     911    
JavaScript Algorithms and Data Structures

A list of JavaScript based examples of many popular algorithms and data structures.

Data Structures
  • Linked List
  • Queue
  • Stack
  • Hash Table
  • Heap
  • Priority Queue
  • Trie
  • Tree
    • Binary Search Tree
    • AVL Tree
    • Red-Black Tree
    • Suffix Tree
    • Segment Tree or Interval Tree
    • Binary Indexed Tree or Fenwick Tree
  • Graph (both directed and undirected)
  • Disjoint Set

 

Algorithms
  • Math
    • Factorial
    • Fibonacci Number
    • Primality Test (trial division method)
    • Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
    • Least Common Multiple (LCM)
    • Integer Partition
  • Sets
    • Cartesian Product - product of multiple sets
    • Power Set - all subsets of the set
    • Permutations (with and without repetitions)
    • Combinations (with and without repetitions)
    • Fisher–Yates Shuffle - random permutation of a finite sequence
    • Longest Common Subsequence (LCS)
    • Longest Increasing subsequence
    • Shortest Common Supersequence (SCS)
    • Knapsack Problem - "0/1" and "Unbound" ones
    • Maximum Subarray - "Brute Force" and "Dynamic Programming" (Kadane's) versions
  • String
    • Levenshtein Distance - minimum edit distance between two sequences
    • Hamming Distance - number of positions at which the symbols are different
    • Knuth–Morris–Pratt Algorithm - substring search
    • Rabin Karp Algorithm - substring search
    • Longest Common Substring
  • Search
    • Binary Search
  • Sorting
    • Bubble Sort
    • Selection Sort
    • Insertion Sort
    • Heap Sort
    • Merge Sort
    • Quicksort
    • Shellsort
  • Tree
    • Depth-First Search (DFS)
    • Breadth-First Search (BFS)
  • Graph
    • Depth-First Search (DFS)
    • Breadth-First Search (BFS)
    • Dijkstra Algorithm - finding shortest path to all graph vertices
    • Bellman-Ford Algorithm - finding shortest path to all graph vertices
    • Detect Cycle - for both directed and undirected graphs (DFS and Disjoint Set based versions)
    • Prim’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
    • Kruskal’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
    • Topological Sorting - DFS method
    • Articulation Points - Tarjan's algorithm (DFS based)
    • Bridges - DFS based algorithm
    • Eulerian Path and Eulerian Circuit - Fleury's algorithm - Visit every edge exactly once
    • Hamiltonian Cycle - Visit every vertex exactly once
    • Strongly Connected Components - Kosaraju's algorithm
    • Travelling Salesman Problem - shortest possible route that visits each city and returns to the origin city
  • Uncategorized
    • Tower of Hanoi
    • N-Queens Problem
    • Knight's Tour
  • Brute Force - look at all the possibilities and selects the best solution
    • Maximum Subarray
    • Travelling Salesman Problem - shortest possible route that visits each city and returns to the origin city
  • Greedy - choose the best option at the current time, without any consideration for the future
    • Unbound Knapsack Problem
    • Dijkstra Algorithm - finding shortest path to all graph vertices
    • Prim’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
    • Kruskal’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
  • Divide and Conquer - divide the problem into smaller parts and then solve those parts
    • Binary Search
    • Tower of Hanoi
    • Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
    • Permutations (with and without repetitions)
    • Combinations (with and without repetitions)
    • Merge Sort
    • Quicksort
    • Tree Depth-First Search (DFS)
    • Graph Depth-First Search (DFS)
  • Dynamic Programming - build up to a solution using previously found sub-solutions
    • Fibonacci Number
    • Levenshtein Distance - minimum edit distance between two sequences
    • Longest Common Subsequence (LCS)
    • Longest Common Substring
    • Longest Increasing subsequence
    • Shortest Common Supersequence
    • 0/1 Knapsack Problem
    • Integer Partition
    • Maximum Subarray
    • Bellman-Ford Algorithm - finding shortest path to all graph vertices
  • Backtracking - 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 solution
    • Hamiltonian Cycle - Visit every vertex exactly once
    • N-Queens Problem
    • Knight's Tour
  • Branch & Bound

Related Plugins

Latest Plugins