Алгоритмы. Построение и анализ [2007] Томас Кормен

Слишком сложно для глупого современного программиста

cache latencies

Базовая база - алгоритмы с математикой, доказательствами корректности и оценками сложности. Та самая книга, которую хорошо бы читать на первых курсах университета. Навёрстываю упущенное.

Прочитал полностью, но усвоил далеко не всё. Формальные доказательства и математические выкладки даются тяжело. Даже сложные алгоритмы с разбором на бумаге даются тяжело. В контестах от яндекса с видео разбором всё усваивается в разы легче: показал, объяснил и вперед нарешивать задачки на тему.

Вот раньше хорошие программисты были по умолчанию математиками. Сейчас уже нет. Программирование не требует глубоких математических знаний. Основы нужны, но не более. Эта книга требует от тебя этого “более”. Начинать изучать алгоритмы по ней не стоит. И в целом она настолько специфична, что лучше потратить время на чтение чего то другого. Например, у того же автора есть маленькая книжка “Алгоритмы. Вводный курс”. Она простая, все по делу, мне понравилась.

Что запомнилось

Heap sort

Обычно в обучающих ресурсах приводят merge и select сортировки, а вот “пирамидальная” сортировка прошла как то мимо меня. Взял и написал сам. Понравилась она мне.

Красно-чёрное дерево и Rust

Захотел ради учебы написать красно-черное дерево. Думал, что смогу избежать проблем с мутабельностью в Rust с помощью отдельной арены - вместо указателей хранить индексы. Но реализация операции поворота поставила меня в тупик - либо писать unsafe для модификации нескольких узлов одновременно, либо добавлять Box/RefCell. Ничего из этого не захотелось, поэтому план кодинга красно-черного полностью провалился.

Матрицы и линейное программирование

Неожиданно понравилась тема.

Метки:

Разделы:

Дата изменения: