#### Fundamental Algorithms, G22.1170 Fall 2001

The following reading recommendations give more detail guides, based on the weekly lecture and recitation feedback.

We strongly suggest reading ahead: this kind of reading does not require full understanding, but gives you a general orientation. Just read as far as you can, starting from the introduction (even 10 minutes of reading just before class would be helpful). Even learning the few buzz words on the topic is useful to help understand lectures.

We encourage doing extra exercises on your own. We would be happy to discuss your solutions in person or in recitation.
-- We discussed Merge Sort in lecture 1. This is described in 2.3.1 and 2.3.1.
1 (Sep 10) Recurrences Chap 3,4 and Appendix A.
-- In Chap 3, skip the small-oh and small-omega notation for now. In Chap. 4, read 4.2 (recursion tree) only lightly. In Appendix A, understand the bounding techniques.
-- Here is the ``introduction to algorithmics'' part of today's lecture in Gzipped Postscript (Optional reading!)
2 (Sep 17) Probabilistic Analysis Chap 5. Appendix C.
-- In Appendix C, focus on sections C.1 and C.2. You must be comfortable with the concept of random variables.
-- Read sections 1, 2, 3. Also, read section 4.3 (on streaks).
3 (Sep 24, Oct 1) Quick Sort and Medians Chap 7,9.
-- Read sections 1, 2, 3, 4 in Chapter 7.
-- Read sections 1, 2, 3 in Chapter 9.
4 (Oct 8) Hashing Chap 11.
-- Read sections 1, 2, 3, 4, 5.
-- For section 4, skip the analysis (pages 241 onwords)
5 (Oct 15) Binary Search Trees
(Randomized, Balanced)
Chap 12 and 13 (Lecture Notes).
-- Read sections 1, 2, 3 of Chapter 12 (Binary Search Trees).
-- Read section 2 of Chapter 13 (rotations). DO NOT READ ABOUT THE RED-BLACK TREE ALGORITHMS IN THIS CHAPTER.
-- In place of Red-Black Trees, we will cover AVL Trees. This is exercise 13-3 (p.296), but I provide our own lecture notes here. You only need to read section 5 (page 14-17) in these notes:
postscript   |   pdf (no longer buggy?)
The pdf version of these notes were buggy because the figures (binary trees) do not show up. [Additional Note: I have since gotten two pdf conversions from your fellow classmates -- thanks -- one did not seem to work, other seems good and is the posted one.] PLEASE read the postscript version if possible. The standard free viewer for postscript is called ``gsview'' or ``ghostview''. You should be able to get this from the web (you need to first install ``ghostscript'' before ``ghostview'').
6 (Oct 29) Dynamic Programming Chap 15.
-- Read Sections 2, 3 and 4.
-- The two concrete examples you need to know are Optimal Matrix Multiplication and Longest Common Subsequence.
7 (Nov 5) Greedy Methods Chap 16.
-- Read Sections 1, 2 and 3.
-- The concrete examples are Actitivity Selection and Huffman Codes.
8 (Nov 12) Amortization Chap 17.
-- Read Sections 1, 2, 3 and 4.
-- The concrete examples here are binary counters and dynamic tables.
-- See also the Union-Find problem (also known as ``Disjoint Sets Data Structure'') below.
9 (Nov 12, 19) Advanced Data Structures Disjoint Sets (Chapter 21)
-- Read Sections 1, 2 and 3. Skip Section 4.
-- This is another example of amortization analysis, and is used for Kruskal's MST algorithm.
-- Our lower bound for path-compression heuristic is not in the text, but uses the concept of binomial trees. These trees are described in section 19.1.1 (p.457).
10 (Nov 19) Basic Graph Algorithms Chap 22, 23.
-- Read all of Chapter 22 and 23.
-- You will need to know: BFS, DFS, Topological sort, strong components, MST algorithms (Prim's and Kruskal's).
11 (Nov 26) Shortest Paths Chap 24.
-- Read sections 24.1, 24.2, 24.3
-- The focus is on Dijkstra's algorithm; you must know how to perform hand simulation of this algorithm.
12 (Dec 3) Computational Geometry Chap 33.