+1 (315) 557-6473 

Algorithms

The exhaustive list of topics in Algorithms in which we provide Help with Homework Assignment and Help with Project is as follows:

  • Karp-Rabin,rolling hashes principles and code
  • Hashing
  • Document distance
  • More rolling hashes
  • Python cost model, review for asymptotic notation and mergesort
  • Breadth-first search and depth-first search
  • Airplane scheduling, binary search trees
  • Hashing: chaining, hash functions
  • Searching: breadth-first search and depth-first search
  • Document distance in Python
  • Hashing in Python, mutability
  • Balanced binary search trees
  • Heaps as data structures: principles, sorting, priority queues
  • Binary search trees
  • Sorting: heaps
  • Hashing: table doubling, Karp-Rabin
  • Searching: graph search, representations, and applications
  • Hashing: open addressing
  • Sorting methods
  • Sorting: lower bounds, linear-time sorting
  • Searching: topological sort and NP-completeness
  • Open addressing: theory review, Python code
  • Sorting: stable sorting, radix sort
  • Counting, radix and bucket sorting, gas simulation
  • AVL Trees (balanced binary search trees)
  • More document distance, mergesort
  • Binary search trees
  • Shortest paths
  • Shortest paths: Bellman-Ford
  • Generic shortest-path algorithm: concepts, properties
  • Bellman-Ford: examples, negative-cost cycles
  • Shortest paths: Dijkstra
  • Hands-on Dijkstra: pseudocode, preconditions
  • Priority queues: review, extended Python implementation
  • Shortest paths: Dijkstra speedups
  • Array implementation of Dijkstra
  • Dynamic programming : memorization, Fibonacci, Crazy Eights, guessing
  • Hands-on dynamic programming: big ideas, memorization in Fibonacci, crazy cards, Dijkstra and Bellman-Ford algorithm as dynamic programming
  • Dynamic programming: longest common subsequence (LCS), parent pointers
  • Beating Super Mario Brothers, getting points back on tests (LCS), Crazy Eights
  • Dynamic programming: text justification, parenthesization, knapsack, pseudopolynomial time, Tetris training
  • Dynamic programming: Maximum-sum sub-array, more Tetris
  • Dynamic programming: piano fingering, structural DP (trees), vertex cover, dominating set, and beyond
  • Knapsack and its variants, structural dynamic programming: covering a tree with templates, dominating set
  • Numerics
  • Dynamic programming: live Python coding, dominating sets, structural dynamic programming: covering a tree with templates
  • Divide and conquer vs. dynamic programming on problems: matrix multiplication, tower, max-sum subarray, closest pair
  • Numerics , Strassen's algorithm for matrix multiplication
  • Geometric folding algorithms