update russian v2

This commit is contained in:
krahets
2026-03-25 16:54:42 +08:00
parent 036b41b5cb
commit d2da1b4a83
20 changed files with 25011 additions and 0 deletions
+441
View File
@@ -0,0 +1,441 @@
# Приложение
![](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**
>
> Главный редактор *Мовчан Д. А.*
>
> Зам. главного редактора *Яценков В. С.*
>
> <editor@dmkpress.com>
>
> Перевод *Шевкун И. А.*
>
> Корректор *Абросимова Л. А.*
>
> Верстка *Луценко С. В.*
>
> Дизайн обложки *Трофимова С. В.*
>
> Формат 70×100 1/16.
>
> Гарнитура «PT Serif». Печать цифровая.
>
> Усл. печ. л. 40,14. Тираж 100 экз.
>
> Веб-сайт издательства: [www.dmkpress.com](http://www.dmkpress.com/)