Files
hello-algo/ru/chapters/chapter_16.md
2026-03-25 16:54:42 +08:00

18 KiB
Raw Blame History

Приложение

{width="4.072915573053368in" height="5.270833333333333in"}

Содержание главы
  1. Установка программной среды

  2. Совместная разработка

  3. Глоссарий

Установка программной среды

  1. Установка IDE

Рекомендуется использовать открытую и быструю интегрированную среду разработки (IDE) VS Code. Откройте официальный сайт VS Code и выберите подходящую вашей операционной системе версию для загрузки и установки.

Рис. 16.1. Загрузка VS Code с официального сайта

VS Code обладает мощной экосистемой расширений и поддерживает выпол- нение и отладку большинства языков программирования. Например, после установки расширения Python Extension Pack можно выполнять отладку кода на Python. Этапы установки показаны на рис. 16.2.

  1. Установка программной среды ❖ 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 (руководство по настройке).

  1. Также можно использовать интегрированную среду разработки 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.

Совместная разработка

Ввиду ограниченных возможностей автора в книге неизбежно присутству- ют некоторые упущения и ошибки, просим отнестись к этому с пониманием. Если вы обнаружите опечатки, неработающие ссылки, неполное содержание,

  1. Совместная разработка ❖ 487

двусмысленности в тексте, неясные объяснения или нерациональную структу- ру изложения, пожалуйста, помогите нам в исправлении, чтобы предоставить читателям более качественные учебные ресурсы.

Все идентификаторы GitHub авторов будут представлены на странице ре- позитория книги, в веб-версии и PDF-версии в знак благодарности за их бес- корыстный вклад в сообщество с открытым исходным кодом.

Небольшая корректировка содержимого

В правом верхнем углу каждой страницы есть значок редактирования, как по- казано на рис. 16.3. Следуйте следующим шагам для изменения текста или кода.

  1. Нажмите на значок редактирования. Если появится сообщение «Необходи- мо создать ответвление этого репозитория», согласитесь на это действие.

  2. Измените содержимое исходного файла Markdown, проверьте правиль- ность содержания и постарайтесь сохранить единый формат оформления.

  3. В нижней части страницы заполните описание изменений, затем на- жмите кнопку Propose file change (предложить изменение файла). После перехода на следующую страницу нажмите кнопку Create pull request (Создать запрос на слияние), чтобы инициировать запрос на слияние.

Рис. 16.3. Кнопка редактирования страницы

Изображения нельзя изменить напрямую, необходимо создать новую Issue (Задачу) или оставить комментарий для описания проблемы. Мы как можно быстрее изменим и обновим изображение.

Создание содержимого

Если вы заинтересованы в участии в этом проекте с открытым исходным ко- дом, включая перевод кода на другие языки программирования, расширение содержания статей и т. д., необходимо выполнить следующий рабочий процесс Pull Request (Запрос на слияние).

  1. Войдите в GitHub, создайте ответвление хранилища кода книги в свой личный аккаунт.

  2. Перейдите на страницу ответвления и используйте команду git clone

для клонирования хранилища на локальный компьютер.

  1. На локальном компьютере создайте содержимое и проведите полное те- стирование, чтобы проверить правильность кода.

  2. Зафиксируйте изменения, сделанные локально, затем отправьте их в удаленное хранилище.

  3. Обновите страницу хранилища и нажмите кнопку 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

с доставкой в любой регион РФ.

Цзинь Юйдун (@krahets)

Алгоритмы и структуры данных с примерами на Python

Главный редактор Мовчан Д. А.

Зам. главного редактора Яценков В. С.

editor@dmkpress.com

Перевод Шевкун И. А.

Корректор Абросимова Л. А.

Верстка Луценко С. В.

Дизайн обложки Трофимова С. В.

Формат 70×100 1/16.

Гарнитура «PT Serif». Печать цифровая.

Усл. печ. л. 40,14. Тираж 100 экз.

Веб-сайт издательства: www.dmkpress.com