P±²³´µ²
Finally,
please make whatever you write freely, easily, and globally avail-
able on the open web
—not hidden behind the gates of a learning management
system or some other type of paywall—so that students and instructors else-
where can benefit from your unique insights. In particular, if you develop useful
resources that directly complement this textbook, such as slides, videos, or
solution manuals, please let me know so that I can add links to your resources
from the book web site.
Acknowledgments
This textbook draws heavily on the contributions of countless algorithms students,
teachers, and researchers. In particular, I am immensely grateful to more than
three thousand Illinois students who have used my lecture notes as a primary
reference, offered useful (if sometimes painful) criticism, and suffered through
some truly awful early drafts. Thanks also to many colleagues and students
around the world who have used these notes in their own classes and have sent
helpful feedback and bug reports.
I am particularly grateful for the feedback and contributions (especially
exercises) from my amazing teaching assistants:
Aditya Ramani, Akash Gautam, Alex Steiger, Alina Ene, Amir Nayyeri,
Asha Seetharam, Ashish Vulimiri, Ben Moseley, Brad Sturt, Brian Ensink,
Chao Xu, Charlie Carlson, Chris Neihengen, Connor Clark, Dan Bullok,
Dan Cranston, Daniel Khashabi, David Morrison, Ekta Manaktala, Erin
Wolf Chambers, Gail Steitz, Gio Kao, Grant Czajkowski, Hsien-Chih Chang,
Igor Gammer, Jacob Laurel, John Lee, Johnathon Fischer, Junqing Deng,
Kent Quanrud, Kevin Milans, Kevin Small, Konstantinos Koiliaris, Kyle Fox,
Kyle Jao, Lan Chen, Mark Idleman, Michael Bond, Mitch Harris, Naveen
Arivazhagen, Nick Bachmair, Nick Hurlburt, Nirman Kumar, Nitish Korula,
Patrick Lin, Phillip Shih, Rachit Agarwal, Reza Zamani-Nasab, Rishi Talreja,
Rob McCann, Sahand Mozaffari, Shalan Naqvi, Shripad Thite, Spencer
Gordon, Srihita Vatsavaya, Subhro Roy, Tana Wattanawaroon, Umang
Mathur, Vipul Goyal, Yasu Furakawa, and Yipu Wang.
I’ve also been helped tremendously by many discussions with faculty col-
leagues at Illinois: Alexandra Kolla, Cinda Heeren, Edgar Ramos, Herbert
Edelsbrunner, Jason Zych, Kim Whittlesey, Lenny Pitt, Madhu Parasarathy,
Mahesh Viswanathan, Margaret Fleck, Shang-Hua Teng, Steve LaValle, and
especially Chandra Chekuri, Ed Reingold, and Sariel Har-Peled.
Of course this book owes a great debt to the people who taught me this
algorithms stuff in the first place: Bob Bixby and Michael Pearlman at Rice;
David Eppstein, Dan Hirschberg, and George Lueker at Irvine; and Abhiram
Ranade, Dick Karp, Manuel Blum, Mike Luby, and Raimund Seidel at Berkeley.
vi