Совершенный алгоритм. Жадные алгоритмы и динамическое программирование
Третья часть серии «Совершенный алгоритм» от известного преподавателя и исследователя Тима Рафгардена посвящена двум фундаментальным парадигмам проектирования алгоритмов — жадным алгоритмам и динамическому программированию. Книга основана на популярных онлайн-курсах автора и предназначена для программистов, желающих углубить свои теоретические знания и практические навыки решения сложных вычислительных задач.
В разделе о жадных алгоритмах подробно разбирается сама парадигма, её темы и применение к классическим задачам, таким как задача планирования, построение минимальных остовных деревьев, кластеризация и кодирование Хаффмана. Автор не только демонстрирует алгоритмы, но и учит методике их разработки и строгому доказательству их правильности, что является ключевым навыком для успешного прохождения технических собеседований.
Вторая часть книги посвящена динамическому программированию — мощному методу решения задач оптимизации путём разбиения их на перекрывающиеся подзадачи. Читатель научится применять этот подход к задачам о рюкзаке, выравниванию последовательностей, поиску кратчайших путей и построению оптимальных деревьев поиска. Особое внимание уделяется распознаванию структуры задач, подходящих для решения с помощью динамического программирования.
Книга написана доступным языком, содержит множество примеров, упражнений и подробных объяснений. Она позволяет перейти на новый уровень понимания алгоритмов, увидеть общую картину и разобраться в математических нюансах. Издание адресовано тем, у кого уже есть опыт программирования, и станет отличным пособием для подготовки к собеседованиям в ведущие IT-компании, а также для углубленного изучения computer science.









