Пер. с англ. Л. Киселева. — СПб.: Питер, 2024. — 848 с. — (Библиотека программиста). — ISBN:978-5-4461-1946-2.
Познакомьтесь с самыми необходимыми алгоритмами решения сложных задач программирования в области анализа данных, машинного обучения и графов. Вы постоянно сталкиваетесь с бесчисленными проблемами программирования, которые поначалу кажутся запутанными, трудными или нерешаемыми. Не отчаивайтесь! Многие из «новых» проблем уже имеют проверенные временем решения. Эффективные подходы к решению широкого спектра сложных задач кодирования легко адаптировать и применять в собственных приложениях, а при необходимости создавать собственные структуры данных под конкретную задачу. Сбалансированное сочетание классических, продвинутых и новых алгоритмов обновит ваш инструментарий программирования, добавив в него новые перспективы и практические методы.
Кому адресована эта книгаБольшинство глав в книге ориентированы на читателей, имеющих базовые представления об алгоритмах, программировании и математике. Вам будет проще постигать материал, если вы уже прошли подготовительные этапы.
Хорошо знаете математику, в частности алгебру. Это поможет вам понять теоретические разделы. Тем не менее в приложении Б содержится краткое введение в нотацию «О большое» и асимптотический анализ.
Посещали вводный курс по информатике или даже по алгоритмам. Тогда вы уже знакомы с базовыми структурами данных, которые станут основой обсуждений в этой книге.
Знакомы с такими понятиями, необходимыми для полного понимания структур данных, как:— основные структуры для хранения данных, такие как массивы и связные списки;
— хеш-таблицы и хеширование;
— деревья;
— контейнеры (очереди и стеки);
— основы рекурсии.
Тем, кому нужно освежить знания, предлагается краткий обзор этих базовых тем в приложении В.