# Приложение ![](ru/docs/assets/media/image1081.jpeg){width="4.072915573053368in" height="5.270833333333333in"} ###### Содержание главы 1. Установка программной среды 2. Совместная разработка 3. Глоссарий #### Установка программной среды 1. **Установка IDE** > Рекомендуется использовать открытую и быструю интегрированную среду разработки (IDE) VS Code. Откройте официальный сайт VS Code и выберите подходящую вашей операционной системе версию для загрузки и установки. ![](ru/docs/assets/media/image1083.jpeg) > **Рис. 16.1.** Загрузка VS Code с официального сайта > > VS Code обладает мощной экосистемой расширений и поддерживает выпол- нение и отладку большинства языков программирования. Например, после установки расширения Python Extension Pack можно выполнять отладку кода на Python. Этапы установки показаны на рис. 16.2. 1. ![](ru/docs/assets/media/image1085.jpeg)Установка программной среды ❖ **485** > **Рис. 16.2.** Установка расширений в VS Code ### Установка языковой среды ##### Среда Python 1. Загрузите и установите инструмент Miniconda3, требуется Python 3.10 или более поздняя версия. 2. В магазине расширений VS Code выполните поиск по слову python и уста- новите расширение Python Extension Pack. 3. (Не обязательно) Введите в командной строке pip install black для уста- новки инструмента форматирования кода. ##### Среда C/C++ 1. В системе Windows необходимо установить набор инструментов MinGW (руководство по настройке). В MacOS имеется встроенный компилятор Clang, дополнительная установка не требуется. 2. В магазине расширений VS Code выполните поиск по слову c++ и устано- вите расширение C/C++ Extension Pack. 3. (Не обязательно) Откройте страницу настроек, найдите параметр фор- матирования кода Clang_format_fallback Style и установите его в значе- ние { BasedOnStyle: Microsoft, BreakBeforeBraces: Attach }. ##### Среда Java 1. Загрузите и установите OpenJDK (версия \> JDK 9). 2. В магазине расширений VS Code выполните поиск по слову java и уста- новите расширение Extension Pack for Java. ##### Среда C# 1. Загрузите и установите .Net 8.0. 2. В магазине расширений VS Code выполните поиск по фразе C# Dev Kit > и установите расширение C# Dev Kit (руководство по настройке). 3. Также можно использовать интегрированную среду разработки Visual Studio (руководство по установке). ##### Среда Go 1. Загрузите и установите Go. 2. В магазине расширений VS Code выполните поиск по слову go и устано- вите Go. 3. Нажмите сочетание клавиш Ctrl + Shift + P, чтобы открыть командную строку. Введите команду go, выберите Go: Install/Update Tools, отметьте все и установите. ##### Среда Swift 1. Загрузите и установите Swift. 2. В магазине расширений VS Code выполните поиск по слову swift и уста- новите расширение Swift for Visual Studio Code. ##### Среда JavaScript 1. Загрузите и установите Node.js. 2. (Не обязательно) В магазине расширений VS Code выполните поиск по слову Prettier и установите инструмент форматирования кода. ##### Среда TypeScript 1. Выполните шаги установки для среды JavaScript. 2. Установите TypeScript Execute (tsx). 3. В магазине расширений VS Code выполните поиск по слову typescript > и установите расширение Pretty TypeScript Errors. ##### Среда Dart 1. Загрузите и установите Dart. 2. В магазине расширений VS Code выполните поиск по слову dart и уста- новите расширение Dart. ##### Среда Rust 1. Загрузите и установите Rust. 2. В магазине расширений VS Code выполните поиск по слову rust и уста- новите расширение rust-analyzer. #### Совместная разработка > Ввиду ограниченных возможностей автора в книге неизбежно присутству- ют некоторые упущения и ошибки, просим отнестись к этому с пониманием. Если вы обнаружите опечатки, неработающие ссылки, неполное содержание, 2. Совместная разработка ❖ **487** > двусмысленности в тексте, неясные объяснения или нерациональную структу- ру изложения, пожалуйста, помогите нам в исправлении, чтобы предоставить читателям более качественные учебные ресурсы. > > Все идентификаторы GitHub авторов будут представлены на странице ре- позитория книги, в веб-версии и PDF-версии в знак благодарности за их бес- корыстный вклад в сообщество с открытым исходным кодом. ##### Небольшая корректировка содержимого > В правом верхнем углу каждой страницы есть значок редактирования, как по- казано на рис. 16.3. Следуйте следующим шагам для изменения текста или кода. 1. Нажмите на значок редактирования. Если появится сообщение «Необходи- мо создать ответвление этого репозитория», согласитесь на это действие. 2. Измените содержимое исходного файла Markdown, проверьте правиль- ность содержания и постарайтесь сохранить единый формат оформления. 3. В нижней части страницы заполните описание изменений, затем на- жмите кнопку **Propose file change** (предложить изменение файла). После перехода на следующую страницу нажмите кнопку **Create pull request** (Создать запрос на слияние), чтобы инициировать запрос на слияние. ![](ru/docs/assets/media/image1087.jpeg) > **Рис. 16.3.** Кнопка редактирования страницы > > Изображения нельзя изменить напрямую, необходимо создать новую Issue (Задачу) или оставить комментарий для описания проблемы. Мы как можно быстрее изменим и обновим изображение. ##### Создание содержимого > Если вы заинтересованы в участии в этом проекте с открытым исходным ко- дом, включая перевод кода на другие языки программирования, расширение содержания статей и т. д., необходимо выполнить следующий рабочий процесс Pull Request (Запрос на слияние). 1. Войдите в GitHub, создайте ответвление хранилища кода книги в свой личный аккаунт. 2. Перейдите на страницу ответвления и используйте команду git clone > для клонирования хранилища на локальный компьютер. 3. На локальном компьютере создайте содержимое и проведите полное те- стирование, чтобы проверить правильность кода. 4. Зафиксируйте изменения, сделанные локально, затем отправьте их в удаленное хранилище. 5. Обновите страницу хранилища и нажмите кнопку **Create pull request** > (Создать запрос на слияние), чтобы инициировать запрос на слияние. ##### Развертывание Docker > В корневом каталоге hello-algo выполните следующий сценарий Docker, чтобы настроить доступ к проекту по адресу http://localhost:8000: > > docker-compose up -d > > Для удаления развертывания выполните следующую команду: > > docker-compose down #### Глоссарий > В табл. 16.1 приведен англо-русский словарь важных терминов, встречающих- ся в книге. Он поможет вам в чтении англоязычной литературы. > > **Таблица 16.1.** Англо-русский словарь терминов 1's complement обратный код > > 2's complement дополнительный код > > adjacency смежность > > adjacency list список смежности > > adjacency matrix матрица смежности > > algorithm алгоритм > > array массив > > asymptotic complexity analysis асимптотический анализ сложности > > asymptotic upper bound асимптотическая верхняя граница AVL tree АВЛ-дерево > > backtracking algorithm алгоритм обратного поиска > > balance factor фактор баланса > > balanced binary search tree сбалансированное двоичное дерево поиска balanced binary tree сбалансированное двоичное дерево > > big-O notation обозначение «О» большое > > binary search двоичный поиск > > binary search tree двоичное дерево поиска > > binary tree двоичное дерево > > bottom of the stack основание стека > > breadth-first search поиск в ширину > > breadth-first traversal обход в ширину > > bubble sort сортировка пузырьком > > bucket корзина > > bucket sort блочная сортировка > > cache hit rate коэффициент попадания в кеш > > cache memory кеш-память > > cache miss промах кеша > > code код > > complete binary tree совершенное двоичное дерево > > connected graph связный граф > > constraint ограничение > > counting sort сортировка подсчетом > > data structure структура данных > > degree степень > > depth глубина > > depth-first search поиск в глубину > > depth-first traversal обход в глубину > > directed graph ориентированный граф > > disconnected graph несвязный граф > > divide and conquer разделяй и властвуй > > double-ended queue двусторонняя очередь > > dynamic array динамический массив > > dynamic programming динамическое программирование > > edge ребро > > edit distance problem задача расстояния редактирования > > file файл > > front of the queue голова очереди > > full binary tree полное двоичное дерево > > function функция > > graph граф > > greedy algorithm жадный алгоритм > > hanota problem задача о Ханойских башнях > > hard disk жесткий диск > > hash collision хеш-коллизия > > hash function хеш-функция > > hash set хеш-набор > > hash table хеш-таблица > > head node головной узел > > heap куча > > heap sort пирамидальная сортировка > > heapify упорядочивание кучи > > height высота > > in-degree входящая степень > > index индекс > > initial state начальное состояние > > insertion sort сортировка вставкой > > iteration итерация > > knapsack problem задача о рюкзаке > > lazy deletion ленивое удаление > > leaf node листовой узел > > left subtree левое поддерево > > left-child node левый дочерний узел > > level уровень > > level-order traversal обход по уровням > > linear probing линейное зондирование > > linked list связный список > > linked list node, list node узел связного списка, узел списка list список > > load factor коэффициент заполнения > > loop цикл > > max heap максимальная куча > > merge sort сортировка слиянием > > method метод > > min heap минимальная куча > > n-queens problem задача об n ферзях > > open addressing открытая адресация > > out-degree исходящая степень > > parent node родительский узел > > path путь > > perfect binary tree идеальное двоичное дерево > > permutations problem задача о перестановках > > priority queue приоритетная очередь > > pruning обрезка > > queue очередь > > quick sort быстрая сортировка > > radix sort поразрядная сортировка > > random-access memory (RAM) оперативное запоминающее устройство (ОЗУ), опера- > > тивная память > > rear of the queue хвост очереди > > recursion рекурсия > > recursion tree дерево рекурсии > > red-black tree красно-черное дерево > > right subtree правое поддерево > > right-child node правый дочерний узел > > root node корневой узел > > searching algorithm алгоритм поиска > > selection sort сортировка выбором > > separate chaining цепная адресация > > sign-magnitude прямой код > > solution решение > > sorting algorithm алгоритм сортировки > > space complexity пространственная сложность > > stack куча > > state состояние > > state-transition equation уравнение перехода состояния subset-sum problem задача о сумме подмножеств > > tail node хвостовой узел > > tail recursion хвостовая рекурсия > > time complexity временная сложность > > top of the stack вершина стека > > top-k problem поиск k наибольших элементов > > tree node узел дерева > > undirected graph неориентированный граф > > variable переменная > > vertex вершина > > weighted graph взвешенный граф > > Книги издательства «ДМК Пресс» можно купить оптом и в розницу на складе издательства по адресу: > > Москва, ул. Электродная, д. 2, стр. 12, офис 7, > > тел. **+7 (499) 322--19--38**, > > а также заказать на сайте [**www.dmkpress.com**](http://www.dmkpress.com/) > > с доставкой в любой регион РФ. ##### Цзинь Юйдун (@krahets) > **Алгоритмы и структуры данных с примерами на Python** > > Главный редактор *Мовчан Д. А.* > > Зам. главного редактора *Яценков В. С.* > > > > Перевод *Шевкун И. А.* > > Корректор *Абросимова Л. А.* > > Верстка *Луценко С. В.* > > Дизайн обложки *Трофимова С. В.* > > Формат 70×100 1/16. > > Гарнитура «PT Serif». Печать цифровая. > > Усл. печ. л. 40,14. Тираж 100 экз. > > Веб-сайт издательства: [www.dmkpress.com](http://www.dmkpress.com/)