Lecture Notes

  1. Summations (not covered in class, but you'll need to know this anyway) [summations.pdf]
  2. Asymptotic Complexity [asymptotic.pdf]
  3. Recurrence Relations [recurrences.pdf]
  4. Heapsort [heapsort.pdf]
  5. Quicksort [quicksort.pdf]
  6. Lower Bounds [lowerbounds.pdf]
  7. Radix Sort [radixsort.pdf]
  8. Order Statistics [order.pdf]
  9. Hash tables [hash.pdf]
  10. Binary Search Trees [bst.pdf]
  11. Red Black Trees [rb.pdf]
  12. Dynamic Programming (Matrix Chain Product) [dp1.pdf]
  13. Dynamic Programming (Longest Common Subsequence) [dp2.pdf]
  14. Greedy Algorithms (Activity Selection) [greedy1.pdf]
  15. Greedy Algorithms (Huffman Coding) [greedy2.pdf]
  16. Graphs (Basics, Traversals) [graph_basics.pdf]
  17. Graphs (Minimum Spanning Trees) [spanningtree.pdf]
  18. Graphs (Shortest Paths) [shortestpaths.pdf]
  19. Graphs (Max Flow) [maxflow.pdf]
  20. Graphs (Matching in Bipartite Graphs) [bipartite.pdf]
  21. Amortization [amortization.pdf]
  22. Binomial heaps [binomial.pdf]
  23. Fibonacci heaps [fibonacci.pdf]
  24. Disjoint Sets [disjoint.pdf]
  25. NP Completeness [np.pdf]