Problem Solving Paradigms (Categories of Algorithms)

General problem solving techniques:

  • Brute force search
  • Divide and Conquer (includes recursion)
  • Greedy
  • Dynamic Programming

We will practice these algorithms using the practice questions.

Graphs

Graph algorithms

  • General purpose:

      • Depth first search (uses a stack)
      • Breath first search (uses a queue)

  • Shortest path: Dijkstra and Bellman-Ford

  • Minimum spanning tree: Kruskal and Floyd Warshall

  • Maximum flow: Edmonds-Karp

Strings

String processing algorithms

  • String alignment (a.k.a.: edit distance

  • Longest common subsequence

  • Palindrome

  • Suffix trie and suffix array