Introduction to Algorithms

  1. Insertion sort
  2. Asymptotic notations I (notes)
  3. Asymptotic notations II
  4. Merge sort (notes)
  5. Maximum subarray
  6. More divide & conquer algorithms
  7. Solving recurrences I (notes)
  8. Solving recurrences II (notes)
  9. Matrix multiplication (notes)
  10. Closest pair of points
  11. The hiring problem (notes)
  12. Quicksort (notes)
  13. The selection problem (notes)
  14. Deterministic algorithm for the selection problem
  15. Can we sort in linear time? (notes)
  16. Radix sort and bucket sort
  17. Introduction to dynamic programming
  18. The rod-cutting problem
  19. Longest common subsequence
  20. Closest pair of points
  21. Review of elementary graph algorithms and data structures I
  22. Review of elementary graph algorithms and data structures II
  23. Minimum Spanning Trees
  24. Dijkstra’s Algorithm
  25. Introduction to computational complexity I
  26. Introduction to computational complexity II
  27. Introduction to computational complexity III