90

Обзор книги "Грокаем алгоритмы", поймёт даже кот

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Всем доброго времени суток!


Публикую обзор подписчика нашего телеграмм-канала IT-старт t.me/it_begin на книгу "Грокаем алгоритмы".


Автор: Адитья Бхаргава


Стоит читать? Да! Почему? Опишу в статье.

Алгоритмы - важны для программиста, а это лучшая книга для начала их изучения с нуля.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Кто целевая аудитория книги?

Книга отлично подойдет для тех, кто решил для себя познакомиться с тематикой алгоритмизации.

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


Что в книге?

Книга состоит из 11 глав, что затрагивает такие темы как бинарный поиск, сортировка, рекурсия, хеш-таблицы, динамическое программирование и многое, многое другое.

Для начала, чтобы было предметное понимание, что представлено в книге, ознакомимся с её оглавлением.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.1. Оглавление

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.1.2. Оглавление

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.1.3. Оглавление

Каждая глава по своему уникальна и ценна , вследствие чего предлагаю рассмотреть каждую главу отдельно.


Глава.1. Знакомство с алгоритмами.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.1.5. Разговорот первой главы


В данной главе, автор знакомит нас с алгоритмами и это знакомство начинается с бинарного поиска.

Бинарный поиск прекрасно рассмотрен на примере игры "Угадай число". Автором предложено читателю загадать число от 1 до 100. При каждой попытке угадать число, ваша задача ответить "много", "мало" или же "угадал".

Плохим способом в данном случае является перебор всех чисел подряд, что влечет за собой сценарий из 100 попыток.

Пример бинарного поиска в задаче "Угадай число".

Начинать угадывать искомое число с числа "50". Мало? Пробуем число "75". Много? Пробуем сузить диапазон возможного расположения искомого числа и пробуем "63". Основная особенность в том, что благодаря бинарного поиску, какое бы число в диапазоне от "1" до "100" вы бы не загадали, его можно будет угадать не более чем за 7 попыток.

В этом и есть магия бинарного поиска, что раскрывается в этой книге. Идём дальше.


Глава.2. Сортировка выбором.
Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.2.1 Глава 2 - сортировка выбором


В этой главе автор рассказывает о том, как устроена память компьютера,что из себя представляют массивы и связные списки и то, как устроен алгоритм сортировки выбором. Обо всём по порядку.


Как устроена память

Автор предлагает представить память компьютера в виде большого шкафа с огромным количеством ящиков внутри. Каждый ящик имеет свой собственный адрес. В случае, когда нам требуется сохранить что-либо в памяти, мы запрашиваем у компьютера место в его памяти, он в ответ нам выдает адрес для сохранения нашей информации. Для сохранения информации присутствуют два основных способа, массивы и сортировка.


Сортировка выбором.

Возможно, самый простой в реализации алгоритм сортировки. Как и в большинстве других подобных алгоритмов, в его основе лежит операция сравнения. Сравнивая каждый элемент с каждым, и в случае необходимости производя обмен, метод приводит последовательность к необходимому упорядоченному виду.

Достаточно легкий для понимания алгоритм, но его недостатком является то, что он очень медленно работает.

Глава.3. Рекурсия.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.3.1 Глава 3 - рекурсия


В третьей главе автор подробно и довольно таки удачно рассказывает о том, что такое рекурсия на примере старого бабушкиного чемодана.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.3.2 Рекурсия


Глава.4. Быстрая сортировка.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.4. Глава 4 - быстрая сортировка.


Автор предлагает нам познакомиться со стратегией "Разделяй и властвуй", что отлично подходит для тех случаев, когда решаемая вами задача, не решается ни одним из ранее известных алгоритмов. Предлагаю вам ознакомиться  с этой удивительной стратегией, что сопровождается соответствующими иллюстрациями.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.4.2 Стратегия "Разделяй и властвуй"

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.4.3 Стратегия "Разделяй и властвуй"

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.4.4 Быстрая сортировка


Также в 4-й главе автором подробно рассматривает алгоритм быстрой сортировки, что часто применяется на практике и как раз таки успешно успешно использует стратегию "Разделяй и властвуй".


Глава.5. Хеш-таблицы

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.5.1 Глава 5 - хеш-таблицы


Хэш-функция - функция, что получает строку ( набор байтов ) и возвращает обратно число. Хэш-таблицы - это структура данных, что связывает между собой ключи со значениями.


Коллизия - та ситуация, когда двум ключам назначают один элемент массива. Простейшее решение данной ситуации - это связный список в этом же элементе.

Отличительной особенностью хорошей хэш-функции создает минимальное количество коллизий.


Отлично проиллюстрировано использование хеш-таблиц для поиска.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.5.2. Использование хеш-таблиц для поиска

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.5.3. Шпаргалка

Хорошим преимуществом данной книги является тезисная выжимка по главе в виде шпаргалки, что имеется в конце каждой главы. Идем дальше.


Глава.6. Поиск в ширину.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.6.1. Глава 6 - Поиск в ширину


В данной главе автор предлагает нам научиться моделировать сети с помощью абстрактной структуру данных - графов. Автором прилагается достаточно подробное и удачно иллюстрированное описание того, что такое граф.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.6.2.  Подробно иллюстрированное знакомство с графами

Глава.7. Алгоритмы Дейкстры

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.7.1. Глава 7 - алгоритм Дейкстры


Алгоритм Дейкстры — алгоритм на графах, изобретённый нидерландским учёным Эдсгером Дейкстрой в 1959 году. Находит кратчайшие пути от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёбер отрицательного веса. Алгоритм широко применяется в программировании, например, его используют протоколы маршрутизации OSPF и IS-IS.


Глава.8. Жадные алгоритмы

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.8.1 Глава 8 - Жадные алгоритмы


Жадный алгоритм — алгоритм, заключающийся в принятии локально оптимальных решений на каждом этапе, допуская, что конечное решение также окажется оптимальным. Известно, что если структура задачи задается матроидом, тогда применение жадного алгоритма выдаст глобальный оптимум. Штука нужная и для кругозора также полезна.


Глава.9. Динамическое программирование

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.9. Динамическое программирование

Динамическое управление - является способом решения сложных задач посредством разбиения их на более простые задачи.


Практическая польза динамического программирования в том, чтобы сократить количество вычислений, благодаря решению каждой подзадачи лишь единожды.


Глава 10. Алгоритм k ближайших соседей

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Рис.10. Глава 10 - Алгоритм k ближайших соседей


Метод k-ближайших соседей – популярный алгоритм классификации, который используется в разных типах задач машинного обучения. Наравне с деревом решений это один из самых понятных подходов к классификации. Поэтому, если интересуетесь машинным обучением, стоит изучить!


Глава 11. Что дальше?

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

По своему значению, возможно одна из самых важных глав этой книги, так как, в ней автор попытается подсказать дальнейшее направление в изучении алгоритмов и рассмотрит те алгоритмы, что не рассматривались в книге ранее.

Напишу тезисно то, о чем говорится в финальной главе:

1. Инвертированные индексы

2. Преобразование Фурье

3. Параллельные алгоритмы.

4. MapReduce

5. Для чего нужны распределенные алгоритмы?

6. Функция map

7. Функция Reduce

8. Фитльры Блума и HyperLogLog


Хотелось бы подвести итоги по книге.


Преимущества книги:

1.Средняя цена книги - до 1.000 рублей.

Цена на OZON -  975 р.

Цена на Wildberries - 945 р.

Цена на Читай-Город - 944 р.

Тот редкий случай, когда книга стоит своих денег. Безусловно, всегда хочется дешевле, но пока это одна из немногих книг, о приобритении которой я не пожалел. Сам покупал в марте за 1038 руб.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

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


3. Реализация всех алгоритмов на Python.

Один из самых популярных ныне языков программирования, вследствие чего вариант реализации в книге всех алгоритмов на Python и достаточно подробное описание кода, является хорошим подспорьем для тех, кто учит Python и интересуется алгоритмами.

Обзор книги "Грокаем алгоритмы", поймёт даже кот Python, Алгоритм, Программирование, Программист, IT, Обучение, Разработка, Литература, Современная литература, Техническая литература, Математика, Животные, Домашние животные, Обзор книг, Книги, Рецензия, Отрывок из книги, Образование, Учеба, Длиннопост, Кот

Недостатки книги:

Форма выполнения книги. Пожалуй, единственный недостаток книги.

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


Заключение по книге:

Изначально несколько раз пытался изучать программирование с книги "Алгоритмы. Построение и анализ." Но не смог преодолеть и сотни страниц. Не понравилось, что автор с самого начала обрушивал на читателя поток формул, от которых мозг начинал кипеть, сам же текст был наполнен тоской и унынием типичного университетского материала, вследствие чего необходимо было искать альтернативный источник концентрированной информации по алгоритмам и источник этот был найден в лице отличной книги под названием "Грокаем алгоритмы".

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


Прочесть данную книгу советую абсолютно каждому программисту, независимо от уровня профессиональной подготовки.


Мой канал в телеграмм

Если статья показалась вам интересной, то буду благодарен за подписку на мой

канал IT-старт t.me/it_begin

где я также публикую обзоры технической литературы и полезную информацию как для действующих, так и для начинающих программистов

Ссылка на бесплатную электронную версию книги t.me/it_begin/186

Другие записи о магазине книг ищите по тэгу Читай-город. Скидки и актуальные предложения для Читай-город ищите в нашем купонном разделе. Там вы найдёте актуальные промокоды для Читай-город.

Книжная лига

16.6K постов68.5K подписчик

Добавить пост

Правила сообщества

Мы не тоталитаристы, здесь всегда рады новым людям и обсуждениям, где соблюдаются нормы приличия и взаимоуважения.


ВАЖНЫЕ ПРАВИЛА

При создании поста обязательно ставьте следующие теги:


«Ищу книгу» — если хотите найти информацию об интересующей вас книге. Если вы нашли желаемую книгу, пропишите в названии поста [Найдено], а в самом посте укажите ссылку на комментарий с ответом или укажите название книги. Это будет полезно и интересно тем, кого также заинтересовала книга;


«Посоветуйте книгу» — пикабушники с удовольствием порекомендуют вам отличные произведения известных и не очень писателей;


«Самиздат» — на ваш страх и риск можете выложить свою книгу или рассказ, но не пробы пера, а законченные произведения. Для конкретной критики советуем лучше публиковаться в тематическом сообществе «Авторские истории».


Частое несоблюдение правил может в завлечь вас в игнор-лист сообщества, будьте осторожны.


ВНИМАНИЕ. Раздача и публикация ссылок на скачивание книг запрещены по требованию Роскомнадзора.

Подробнее