## Princeton University |
## Computer Science 226 |
## Spring 2005 |

General Information | Schedule & Readings | Assignments | Whiteboard

Numbers in brackets [] under "readings" refer to required core chapters or sections of Sedgewick, or occasional readings from other sources. Numbers in braces {} refer to other chapters or sections or readings which may be read optionally for further enrichment, background or review. Readings preceded by the letter "C" (as in "{C8.1}") refer to the optional Cormen, Leiserson, Rivest & Stein text. Readings marked with an asterisk have been scanned from the second edition of Sedgewick. Material and readings for lectures that have not yet taken place are tentative and subject to change.

## # |
## Date |
## Topic |
## Readings |

1 | M 1/31 | General introduction. Union-find. | [1]
{2-5} |

2 | W 2/2 | Elementary sorting algorithms; loop invariants |
[6.0-6.6] {6.7-6.10} {C2.1} |

3 | M 2/7 | Mergesort; begin quicksort | [8] |

4 | W 2/9 | Quicksort; lower bound for comparison-based sorting; begin priority queues |
[7] {C8.1} |

5 | M 2/14 | Priority queues and heapsort; begin symbol tables |
[9.0-9.5] {9.6-9.7} |

6 | W 2/16 | Hashing |
[12.0-12.4] {12.5} [14] |

7 | M 2/21 | Finish hashing. Binary search trees. | [12.6-12.9] |

8 | W 2/23 | Balanced trees | [13 except 13.5] {13.5} |

9 | M 2/28 | Red-black trees; begin radix search | [15 except 15.1] {15.1} |

10 | W 3/2 | Radix search | |

11 | M 3/7 | Radix sort; data compression |
[10.0-10.3; 10.6] {rest of 10} [Sections 4.1-4.5; 4.8; 6.1-6.3; 6.5-6.6 of Coding and Information Theory (2nd ed.) by R. W. Hamming] |

12 | W 3/9 | Finish data compression. Begin dynamic programming. | [5.3] {C15} |

13 | M 3/21 | Finish dynamic programming. Begin graph algorithms. | [17.0-17.4] {17.5-17.6} |

14 | W 3/23 | MIDTERM | |

15 | M 3/28 | Graph search |
[17.7-17.8] [18.0-18.2; 18.7-18.8] {rest of 18} |

16 | W 3/30 | Minimum spanning trees | [20.0; 20.2-20.4] {rest of 20} |

17 | M 4/4 | Directed graphs and DAG's | [19.0-19.1; 19.3; 19.5-19.6; 19.8] {rest of 19} |

18 | W 4/6 | Shortest path problems | [21.0-21.2; 21.4-21.5; 21.7] {rest of 21} |

19 | M 4/11 | Finish shortest paths; begin network flow | |

20 | W 4/13 | Network flow | [22.0-22.2; 22.4] {rest of 22} |

21 | M 4/18 | Geometric algorithms: convex hull; finding the closest pair of points | [24*, 25*] [C33.4] |

22 | W 4/20 | Geometric algorithms: range searching; geometric intersection | [26*, 27*] |

23 | M 4/25 | Linear programming |
[C29.0, C29.1, C29.3, C29.4] {old Scientific American article} |

24 | W 4/27 | NP-completeness | {C34} |

Tu 5/17 9am-12 |
FINAL EXAM McCosh 28 |