Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40_алгоритмов_Python.pdf
Скачиваний:
10
Добавлен:
07.04.2024
Размер:
13.02 Mб
Скачать

Условные обозначения

21

Глава 13 «Крупномасштабные алгоритмы» объяснит, как алгоритмы обрабаты­ вают данные, которые не могут поместиться в память одной ноды и требуют обработки несколькими процессорами. Мы обсудим типы алгоритмов, для ко­ торых необходимо параллельное выполнение, а также процесс распараллели­ вания алгоритмов. Далее будет представлена архитектура CUDA. Мы узнаем, как использовать один или несколько графических процессоров для ускорения алгоритма и как его изменить, чтобы эффективно использовать мощность GPU. Наконец, мы рассмотрим кластерные вычисления и выясним, как Apache Spark создает коллекции данных RDD для чрезвычайно быстрой параллельной реа­ лизации стандартных алгоритмов.

Глава 14 «Практические рекомендации» начинается с темы объяснимости алго­ ритма, которая становится все более важной теперь, когда мы понимаем логику автоматизированного принятия решений. Затем раскрываются проблема этики алгоритмов и возможность возникновения предвзятости при их реализации. Далее подробно обсуждаются методы решения NP-трудных задач. Наконец, кратко изложены способы реализации алгоритмов и связанные с этим слож­ ности.

ЧТО ВАМ ПОТРЕБУЕТСЯ ПРИ ЧТЕНИИ ЭТОЙ КНИГИ

zz Требуемое программное обеспечение: Python 3.7.2 или более поздней версии.

zz Технические характеристики оборудования: минимум 4 Гбайта оперативной памяти, 8 Гбайт и более (рекомендуется).

zz Операционная система: Windows/Linux/Mac.

Вы можете загрузить файлы с примерами кода из репозитория GitHub по адре­ су https://github.com/PacktPublishing/40-Algorithms-Every-Programmer-Should-Know.

УСЛОВНЫЕ ОБОЗНАЧЕНИЯ

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

Код в тексте

Указывает кодовые слова в тексте, имена таблиц базы данных, имена файлов, расширения файлов, пути, URL-адреса, вводимые пользователем, и аккаун­ ты пользователя в Twitter. Вот пример: «Давайте посмотрим, как добавить новый элемент в стек с помощью push или удалить элемент из стека с по­ мощью pop».

22

Предисловие

 

Блоки кода (листинги) выглядят следующим образом:

 

define swap(x, y)

buffer = x x = y

y = buffer

Когда мы хотим привлечь ваше внимание к определенной части листинга, соответствующие строки или элементы выделены полужирным шрифтом:

define swap(x, y) buffer = x x = y

y = buffer

Любой ввод или вывод командной строки также выделяется полужирным шрифтом:

pip install a_package

Новые термины, важные понятия или слова выделены курсивом. Вот пример: «Один из способов уменьшить сложность алгоритма — это пойти на компро­ мисс в отношении его точности, создав тип алгоритма, называемый приближенным алгоритмом».

Так оформлены предупреждения или важные примечания.

Так оформлены советы и рекомендации.

ОТ ИЗДАТЕЛЬСТВА

Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

Часть I

ОСНОВЫ И БАЗОВЫЕ АЛГОРИТМЫ

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

zz Глава 1. Обзор алгоритмов.

zz Глава 2. Структуры данных, используемые в алгоритмах. zz Глава 3. Алгоритмы сортировки и поиска.

zz Глава 4. Разработка алгоритмов. zz Глава 5. Графовые алгоритмы.