Base/Knowledges/Библиотека/Книги/Алгоритмы. Руководство по разработке.md

3.5 KiB
Raw Blame History

Тип, Статус, Название, Автор, Количество страниц, Прогресс, Формат, Обложка, Начата, Закончена, Оценка, Сложность, Теги, Категории, Источник, Ссылка
Тип Статус Название Автор Количество страниц Прогресс Формат Обложка Начата Закончена Оценка Сложность Теги Категории Источник Ссылка
Книга Прочитано Алгоритмы. Руководство по разработке. 3-е изд.
Стивен Скиена
848 848 Бумажная Библиотека/Книги/covers/algorithm-design-manual.jpg 2025 2025 8 10/10
it
programming
algorithms
computer-science
алгоритмы
программирование

!covers/algorithm-design-manual.jpg

Алгоритмы. Руководство по разработке. 3-е изд.

📖 О книге

Один из главных академических трудов по алгоритмам, написанный для практикующих разработчиков. Книга состоит из двух частей: первая — теория и практика проектирования алгоритмов (сортировка, графы, динамическое программирование, эвристики), вторая — каталог из 75 классических алгоритмических задач с готовыми решениями и ссылками на реализации. В 3-м издании расширены разделы по рандомизированным алгоритмам, хешированию и квантовым вычислениям.


🧠 Ключевые идеи

  • Алгоритм = правильная структура данных + правильная техника: выбор структуры данных часто важнее выбора алгоритма — хорошая структура делает алгоритм тривиальным
  • Каталог задач как ключевой инструмент: большинство реальных задач сводятся к известным алгоритмическим проблемам; умение распознать задачу важнее знания алгоритма наизусть
  • Динамическое программирование через рекуррентность: DP — это управляемый перебор с мемоизацией; ключ — правильно определить подзадачу
  • Эвристики для NP-полных задач: не все задачи требуют точного решения; жадные алгоритмы, имитация отжига, генетические алгоритмы дают приемлемый результат на практике
  • Анализ сложности как язык: O-нотация — не формальность, а инструмент коммуникации и принятия решений при проектировании систем

💬 Важные цитаты

«Правильный алгоритм — это тот, который решает задачу. Хороший алгоритм — тот, который делает это эффективно. Но сначала нужно убедиться, что вы решаете правильную задачу.»


💡 Как применить в моих проектах


🔗 Связанные заметки