AlexJuarez / learn-js

Learn all the js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Learn JS

This is a compilation of data structures, algorithms and practical problems that are sure to turn you into a javascript wunderkind.

Getting started

  • clone this repository
  • install node lts (v8.9.1)
  • npm install
  • npm install -g jest-cli
  • cd data-structures/linked-list
  • edit index.js
  • run tests with jest

This is a work in progress, folders with a README have been completed.

Beginner

Data Structures

Algorithms

Advanced

Data Structures

  • Trie (Used in string comprehension) variants include Prefix Trie & Suffix Trie
  • Tree
    • Binary Search Tree
    • AVL Tree
    • Red-Black Tree
    • Segment Tree (interval tree)
    • Fenwick Tree
  • Graph
  • Disjoint Set
  • Bloom Filter

Algorithms

Beginner

  • Arrays
    • Map
  • Promises
    • Throttle
  • Immutable
    • Update
    • Value
  • Sets
    • Cartesian Product (cross product)
    • Fisher-Yates Shuffle - random permutation generator of a finite sequence
  • Strings
    • Hamming Distance - Number of character differences between two strings
  • Searches
    • Linear Search
    • Jump Search (Block Search) in a sorted array
    • Binary Search in a sorted array
    • Interpolation Search (reqs a uniformly distributed sorterd array)
  • Sorting
    • Bubble Sort
    • Selection Sort
    • Insertion Sort
    • Heap Sort
    • Merge Sort
    • Quicksort
    • Shellsort
  • Trees
    • Depth-First Search (DFS)
    • Breath-First Search (BFS)
  • Graphs
    • Depth-First Search (DFS)
    • Breath-First Search (BFS)
    • Kruskal's Algorithm finds the Minimum Spanning Tree for a weighted undirected graph
  • Math
    • Bit Manipulation
    • Factorial
    • Fibonacci Number
    • Primality Test
    • Euclidean Algorithm (Greatest Common Divisor)
    • Least Common Multiple
    • Sieve of Eratosthenes - guess the number of primes up to a given limit
    • Is Power of Two - check if the number is a power of two
    • Pascal's Triangle
  • Uncategorized
    • Flatten thunk
    • Middleware
    • Async function execution (parallel, serial and race)
      • via Callback
      • via Promise
    • Tower of Hanoi
    • Square Matrix Rotation (in place)
    • Jump Game
      • backtracking
      • dynamic programming (top-down + bottom-up)
      • greedy
    • Unique Paths
      • backtracking
      • dynamic programming (top-down + bottom-up)
      • greedy

About

Learn all the js

License:MIT License


Languages

Language:JavaScript 53.7%Language:HTML 45.6%Language:Python 0.6%Language:Java 0.0%Language:Shell 0.0%Language:C++ 0.0%