Оглавление Предисловие 14 Глава 1. Введение 23 Глава 2. Основы анализа эффективности алгоритмов 73 Глава 3. Метод грубой силы 141 Глава 4. Метод декомпозиции 167 Глава 5. Метод уменьшения размера задачи 203 Глава 6. Метод преобразования 247 Глава 7. Пространственно-временной компромисс 305 Глава 8. Динамическое программирование 339 Глава 9. Жадные методы 369 Глава 10. Ограничения мощи алгоритмов 401 Глава 11. Преодоление ограничений 441 Эпилог 487 Приложение А. Формулы, использующиеся при анализе алгоритмов 491 Приложение Б. Краткое руководство по рекуррентным соотношениям 495 Список литературы 509 Указания к упражнениям 517 Предметный указатель 562