Адитья Бхаргава - Грокаем алгоритмы
Иллюстрированное пособие для программистов и любопытствующихНазвание: | Грокаем алгоритмы | |
Автор: | Адитья Бхаргава | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Алгоритмы и структуры данных, Python | |
Изадано в серии: | Библиотека программиста | |
Издательство: | Питер | |
Год издания: | 2022 | |
ISBN: | 978-5-4461-0923-4 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Грокаем алгоритмы"
Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.
К этой книге применимы такие ключевые слова (теги) как: Искусство программирования, Обучение программированию, Просто о сложном, Эффективные алгоритмы
Читаем онлайн "Грокаем алгоритмы" (ознакомительный отрывок). [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (6) »
В книге приводится множество примеров. Моя цель — не вывалить на читателя кучу невразумительных формул, а упростить наглядное представление этих концепций. Я также считаю, что мы лучше всего учимся тогда, когда можем вспомнить что-то уже известное, а примеры помогают освежить память. Так, когда вы вспоминаете, чем массивы отличаются от связанных списков (глава 2), просто вспомните, как ищете места для компании в кинотеатре. Наверное, вы уже поняли, что я сторонник визуального стиля обучения, — в книге полно рисунков.
Содержимое книги было тщательно продумано. Нет смысла писать книгу с описанием всех алгоритмов сортировки — для этого есть такие источники, как Википедия и Khan Academy. Все алгоритмы, описанные в книге, имеют практическую ценность. Я применял их в своей работе программиста, и они закладывают хорошую основу для изучения более сложных тем.
Приятного чтения!
Структура книги
В первых трех главах закладываются основы:• Глава 1 — вы изучите свой первый нетривиальный алгоритм: бинарный поиск. Также здесь рассматриваются основы анализа скорости алгоритмов с применением «O-большое». Эта запись часто используется в книге для описания относительной быстроты выполнения алгоритмов.
• Глава 2 — вы познакомитесь с двумя основополагающими структурами данных: массивами и связанными списками. Эти структуры данных часто встречаются в книге и используются для создания более сложных структур данных, например хеш-таблиц (глава 5).
• Глава 3 — вы узнаете о рекурсии — удобном приеме, используемом многими алгоритмами (например алгоритмом быстрой сортировки, о котором рассказано в главе 4).
По моему опыту, темы «O-большое» и рекурсии сложны для новичков, поэтому в этих разделах я снижаю темп изложения и привожу более подробные объяснения.
В оставшейся части книги представлены алгоритмы, часто применяемые в разных областях.
• Методы решения задач рассматриваются в главах 4, 8 и 9. Если вы столкнулись со сложной задачей и не знаете, как эффективно ее решить, воспользуйтесь стратегией «разделяй и властвуй» (глава 4) или методом динамического программирования (глава 9). А если вы поняли, что эффективного решения не существует, попробуйте получить приближенный ответ с использованием жадного алгоритма (глава 8).
• Хеш-таблицы рассматриваются в главе 5. Хеш-таблицы — исключительно полезная структура данных, предназначенная для хранения пар ключей и значений (например имени человека и адреса электронной почты или имени пользователя и пароля). Трудно переоценить практическую полезность хеш-таблиц. Приступая к решению задачи, я обычно прежде всего задаю себе два вопроса: можно ли здесь воспользоваться хеш-таблицей и можно ли смоделировать задачу в виде графа.
• Алгоритмы графов рассматриваются в главах 6 и 7. Графы используются для моделирования сетей: социальных, дорожных, нейронных или любых других совокупностей связей. Поиск в ширину (глава 6) и алгоритм Дейкстры (глава 7) предназначены для поиска кратчайшего расстояния между двумя точками сети: с их помощью можно вычислить кратчайший маршрут к точке назначения или количество промежуточных знакомых у двух людей в социальной сети.
• Алгоритмkближайших соседей рассматривается в главе 10. Это простой алгоритм машинного обучения; с его помощью можно построить рекомендательную систему, механизм оптического распознавания текста, систему прогнозирования курсов акций — словом, всего, что требует прогнозирования значений («Мы думаем, что Адит поставит этому фильму 4 звезды») или классификации объектов («Это буква Q»).
• Следующий шаг: в главе 11 представлены 10 алгоритмов, которые хорошо подойдут для дальнейшего изучения темы.
Как работать с этой книгой
Порядок изложения и содержимое книги были тщательно продуманы. Если вас очень сильно интересует какая-то тема — переходите прямо к ней. В противном случае читайте главы по порядку, они логически переходят одна в другую. Я настоятельно рекомендую --">- 1
- 2
- 3
- 4
- . . .
- последняя (6) »
Книги схожие с «Грокаем алгоритмы» по жанру, серии, автору или названию:
Эндрю Хант, Дэвид Томас - Программист-прагматик. Путь от подмастерья к мастеру Жанр: Программирование: прочее Год издания: 2004 Серия: Библиотека программиста |
Роберт Сесил Мартин - Идеальный программист. Как стать профессионалом разработки ПО Жанр: Современные российские издания Год издания: 2012 Серия: Библиотека программиста |
Кент Бек - Экстремальное программирование: Разработка через тестирование Жанр: Современные российские издания Год издания: 2017 Серия: Библиотека программиста |
Мартин Форд - Архитекторы интеллекта Жанр: Современные российские издания Год издания: 2019 Серия: Библиотека программиста |
Другие книги из серии «Библиотека программиста»:
С. Николенко, А. Кадурин, Е. Архангельская - Глубокое обучение Жанр: Искусственный интеллект Год издания: 2018 Серия: Библиотека программиста |
Бен Маккарти - Кибердзюцу: кибербезопасность для современных ниндзя Жанр: Компьютерная безопасность Год издания: 2022 Серия: Библиотека программиста |
Скотт Чакон, Бен Штрауб - Git для профессионального программиста Жанр: Программирование: прочее Год издания: 2016 Серия: Библиотека программиста |
Эли Стивенс, Лука Антига, Томас Виман - PyTorch. Освещая глубокое обучение Жанр: Python Год издания: 2022 Серия: Библиотека программиста |