Suggested Optional Problems

To learn algorithms it is necessary to solve many problems--many more than your instructor will regquire youi to hand in. You should solve at least one problem every day. I hope that this list will help you focus your attention on some especially helpful learning opportunities, organized by type of problem (design, analysis, fundamental algorithm, math tools, NP-completeness). --Alan Sherman

Analysis Problems

Design Problems

Problems on Fundamental Algorithms

Math Tools Problems

Problems on NP-Completeness