Сразу хочу поделиться мыслями:
- это книга рассчитана больше на неискушенных людей, у которых почти нету или мало опыта в программировании и алгоритмах (таких как сортировка, поиск оптимальных путей)
- тем не менее, она здорово расширяет кругозор в подобных алгоритмах и некоторых процессах, на которых построены алгоритмы известных технологий, таких как поиск в интернете или рекомендательные системы
- так же, издание дает пищу для размышления по поводу современных алгоритмов, машинного обучения и советует изучать определенные технологии для дальнейшего развития
Ниже приведены, освещенные в этом труде, понятия, алгоритмы и технологии
- Бинарный поиск (в том числе в сравнении с обычным поиском перебором) и массивы. Хотя массив поиска должен быть отсортированным чтобы им пользоваться
- О-большое — порядок времени работы алгоритма. Важное понятие для оценки эффективности (скорости работы) алгоритмов или сравнения разных алгоритмов
- Задача о коммивояжере (как пример задачи, которую очень тяжело выполнить точно)
- Связанные списки, как альтернативный массивам тип данных
- Сортировка выбором
- Рекурсия и стек (стек вызовов)
- Быстрая сортировка (используется понятие алгоритма «Разделяй и властвуй» и рекурсия)
- Хеши, Хеш-таблицы, Хеш-функции
- Графы, Поиск в ширину для описка кратчайшего пути по графу (когда весов у ребер нету)
- Алгоритм Дейкстры для поиска наиболее выгодного (быстрого) пути по графу (когда весы у ребер появляются)
- Жадные алгоритмы, как быстрые, но приближенного решения сверх-сложных задач (NP-полных)
- Множества
- Динамическое программирование, как метод решения сложных задач с помощью разбиения на более простые
- Шутливый Алгоритм Фейнмана (1 — сформулировать задачу, 2 — хорошенько подумать, 3 — записать решение)
- Алгоритм k-ближайших соседей, как распостраненный метод решения многих задач классификации (распределение по категориям) и регрессии (прогнозирование ответа)
- Извлечение признаков
- Машинное обучение на примерах OCR, спам-фильтра, прогноза биржевых торгов
В последней главе книги вскользь (тезисно) касаются следующих тем
- Возвращаемся к деревьям
- Инвертированные индексы
- Преобразование Фурье
- Параллельные алгоритмы
- MapRecude и распределенные алгоритмы
- Фильтры Блума и HyperLogLog
- Алгоритмы SHA и сравнение файлов
- Алгоритм Диффи-Хеллмана
- Линейное программирование
Вывод: книгу следует прочитать на начальном этапе ознакомления с современными алгоритмами или же для расширения кругозора