Введение в анализ алгоритмов
Книга представляет собой краткое, но математически строгое введение в анализ алгоритмов с точки зрения доказательства их правильности. Основная задача издания — разобрать идеи, лежащие в основе программ, и показать, как математически доказывать, что заданный алгоритм делает именно то, что должен делать.
В книге рассматриваются классические алгоритмы, такие как целочисленное деление, алгоритм Евклида, а также основные парадигмы проектирования: жадные алгоритмы, алгоритмы «разделяй и властвуй», динамическое программирование. Особое внимание уделено современным направлениям — рандомизированным и онлайновым алгоритмам, которые стали повсеместными в криптографии и многих прикладных областях, от операционных систем до финансов.
Издание содержит большое количество теоретических задач и практических примеров, многие из которых требуют реализации на языке Python 3. Книга является математически строгой и предполагает предварительное знакомство с дискретной математикой. Она предназначена для студентов вузов, специалистов в области информатики и математики, а также широкого круга программистов и разработчиков.









