Структура книги
В первых трех главах закладываются основы:
Глава 1 - вы изучите свой первый нетривиальный алгоритм: бинарный поиск. Также здесь рассматриваются основы анализа скорости алгоритмов с применением «О-большое» . Эта запись часто используется в книге для описания относительной быстроты выполнения алгоритмов.
Глава 2 - вы познакомитесь с двумя основополагающими структурами данных: массивами и связанными списками. Эти структуры данных часто встречаются в книге и используются для создания более сложных структур данных, например хеш-таблиц (глава 5).
Глава З - вы узнаете о рекурсии - удобном приеме, используемом многими алгоритмами (например алгоритмом быстрой сортировки ,о котором рассказано в главе 4).
По моему опыту, темы «О-большое» и рекурсии сложны для новичков,поэтому в этих разделах я снижаю темп изложения и привожу более подробные объяснения.
В оставшейся части книги представлены алгоритмы, часто применяемые в разных областях.
Методы решения задач рассматриваются в главах 4, 8 и 9. Если вы столкнулись со сложной задачей и не знаете , как эффективно ее решить,воспользуйтесь стратегией «разделяй и властвуй» (глава 4) или методом динамического программирования (глава 9). А если вы поняли , что эффективного решения не существует, попробуйте получить приближенный ответ с использованием жадного алгоритма (глава 8).
Хеш-таблицы рассматриваются в главе 5. Хеш таблицы - исключительно полезная структура данных, предназначенная для хранения пар ключей и значений (например имени человека и адреса электронной почты или имени пользователя и пароля). Трудно переоценить практическую полезность хеш-таблиц. Приступая к решению задачи, я обычно прежде всего задаю себе два вопроса: можно ли здесь воспользоваться хеш-таблицей и можно ли смоделировать задачу в виде графа.
Алгоритмы графов рассматриваются в главах 6 и 7. Графы используются для моделирования сетей: социальных, дорожных, нейронных или любых других совокупностей связей. Поиск в ширину (глава 6) и алгоритм Дейкстры (глава 7) предназначены для поиска кратчайшего расстояния между двумя точками сети: с их помощью можно вычислить кратчайший маршрут к точке назначения или количество промежуточных знакомых у двух людей в социальной сети.
Алгоритм k ближайших соседей рассматривается в главе 10. Это простой алгоритм машинного обучения; с его помощью можно построить рекомендательную систему, механизм оптического распознавания текста,систему прогнозирования курсов акций - словом, всего, что требует прогнозирования значений («Мы думаем, что Адит поставит тому фильму 4 звезды» ) и классификации объектов («Это буква Q» ).
Следующий шаг: в главе 11 представлены 10 алгоритмов, которые хорошо подойдут для дальнейшего изучения темы.
