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

57 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
Тип: Книга
Статус: Прочитано
Название: Алгоритмы. Руководство по разработке. 3-е изд.
Автор:
- Стивен Скиена
Количество страниц: 848
Прогресс: 848
Формат: Бумажная
Обложка: Библиотека/Книги/covers/algorithm-design-manual.jpg
Начата: "2025"
Закончена: "2025"
Оценка: "8"
Сложность: 10/10
Теги:
- it
- programming
- algorithms
- computer-science
Категории:
- алгоритмы
- программирование
Источник:
Ссылка: https://disk.yandex.ru/d/uPOryxahBdrUdg
---
![[covers/algorithm-design-manual.jpg]]
# Алгоритмы. Руководство по разработке. 3-е изд.
## 📖 О книге
Один из главных академических трудов по алгоритмам, написанный для практикующих разработчиков. Книга состоит из двух частей: первая — теория и практика проектирования алгоритмов (сортировка, графы, динамическое программирование, эвристики), вторая — каталог из 75 классических алгоритмических задач с готовыми решениями и ссылками на реализации. В 3-м издании расширены разделы по рандомизированным алгоритмам, хешированию и квантовым вычислениям.
---
## 🧠 Ключевые идеи
- **Алгоритм = правильная структура данных + правильная техника**: выбор структуры данных часто важнее выбора алгоритма — хорошая структура делает алгоритм тривиальным
- **Каталог задач как ключевой инструмент**: большинство реальных задач сводятся к известным алгоритмическим проблемам; умение распознать задачу важнее знания алгоритма наизусть
- **Динамическое программирование через рекуррентность**: DP — это управляемый перебор с мемоизацией; ключ — правильно определить подзадачу
- **Эвристики для NP-полных задач**: не все задачи требуют точного решения; жадные алгоритмы, имитация отжига, генетические алгоритмы дают приемлемый результат на практике
- **Анализ сложности как язык**: O-нотация — не формальность, а инструмент коммуникации и принятия решений при проектировании систем
---
## 💬 Важные цитаты
> «Правильный алгоритм — это тот, который решает задачу. Хороший алгоритм — тот, который делает это эффективно. Но сначала нужно убедиться, что вы решаете правильную задачу.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Грокаем алгоритмы]]